2017-07-31 14 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オブジェクトに設定されている場合、それは''が返されるようは、所望の結果が得られない場合があり、単純な||チェックを使用。これは何を期待しないことがどのように、なぜ/のデモについては、

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

this fiddleは 'hasOwnProperty'とそれを使用する理由の説明を使用するためにあなたの先生に感謝を参照してください。それは、今日野生でそれを見ることはまれです。 ) – cyrix

関連する問題