オブジェクト({}
)のキーが存在しているか調べる時、if文を使うと値によっては上手くいかない。
var obj = { A: 0, B: 1, C: 2, D: "" }; var foo; obj.E = foo; ["A", "B", "C", "D", "E", "F"].forEach(function(key) { if( obj[key] ) { console.log( obj[key] ); } });
👇 出力
B 1 C 2
key in object を使えばOK
["A", "B", "C", "D", "E", "F"].forEach(function(key) { if( key in obj ) { console.log( key, obj[key] ); } });
👇 出力
A 0 B 1 C 2 D "" E undefined
配列の値の有無をチェックしたい場合
配列(Array)はindexOf
をを使うと値があればそのインデックスを返してくれるので、結果が -1
でなければ値があると判定することができる。
var arr = [2, true, false, '', -1, null, undefined]; arr.indexOf(2); // 0 arr.indexOf(false); // 2 // 空文字もOK arr.indexOf(''); // 3 // null や undefined も大丈夫 arr.indexOf(null); // 5 arr.indexOf(undefined); // 6 // 暗黙の型変換はしないっぽい arr.indexOf("2"); // -1
パンダホビー[PH35016]1/35 現用露 T-14アルマータ オブイェクト148 主力戦車
- 出版社/メーカー: パンダホビー
- メディア:
- この商品を含むブログを見る