2017-07-31 68 views
1

如何使用键/值对将下面的“else”语句添加到以下字典中以处理任何类型的歧义?向Javascript字典键值对添加else语句?

var inputArr = input.match(/[\d.]+/g).map(Number); 
var inputAnswer = "" 

inputArr.forEach(function(element, index){ 

var lookUp = { 
    "1":"611" 
    "2":"612" 
    "3":"613" 
    "":"" 
}; 
    inputAnswer = lookUp[element]; 
} 
    return inputAnswer 
}); 

正如您所看到的,键/值对只能编程为处理“1”,“2”,“3”和“”。如何添加另一个值,如果它传递任何其他值,将返回空字符串(“”)?只是希望它被动态地设置来处理任何类型的数据。谢谢!

回答

3

使用一个简单的三元结合hasOwnProperty将让你做你想做的。

注:使用简单||检查可能不会取得理想的结果,就好象falsey值在lookUp对象设定将返回''。对于为什么/如何这可能不是你所期望的一个演示,看到this fiddle

var inputArr = input.match(/[\d.]+/g).map(Number); 
var inputAnswer = "" 

inputArr.forEach(function(element, index) { 
    var lookUp = { 
     "1":"611" 
     "2":"612" 
     "3":"613" 
     "":"" 
    }; 

    // If a defined value exists, return it, otherwise '' 
    inputAnswer = (lookUp.hasOwnProperty(element)) ? lookUp[element] : ''; 
} 
    return inputAnswer 
}); 
+1

谢谢主席先生使用'hasOwnProperty'以及为什么要使用它的解释,也很少看到它在野外今天: ) – cyrix