配列キー値の存在チェック
配列・連想配列のキーが存在するかのチェック方法のまとめ。
通常配列のキー存在チェック
チェック方法は、単純にif文に直接条件として設定すればよいです。
var foo = []; foo.push("bar"); foo.push("baz"); if (foo[0]) { console.log(foo[0]); }
連想配列のキー存在チェック
連想配列もチェック方法は同じで、if文に直接条件設定。
var foo = []; foo["bar"] = "barbar"; foo["baz"] = "bazbaz"; if (foo["bar"]) { console.log(foo["bar"]); }
ドット記法であっても同じ。
var foo = []; foo["bar"] = "barbar"; foo["baz"] = "bazbaz"; if (foo.bar]) { console.log(foo.bar]); }
連想配列(ハッシュ)のキー存在チェック
これまた連想配列(ハッシュ)でもチェック方法は同じで、if文に直接条件設定。
var foo = { bar: "barbar", baz: "bazbaz" }; if (foo.bar) { console.log(foo.bar); }
要素は存在するがfalseが返ってしまう問題
上記のような方法でもよいのですが、要素が存在してもその値が、nullやundefined・空白だとfalseが返ってしまいます。
var foo = []; foo["bar"] = null; foo["baz"] = "bazbaz"; if (foo["bar"]) { // falseになってしまう console.log(foo["bar"]); }
そこで、in演算子を使用してチェックを行います。
var foo = []; foo["bar"] = null; foo["baz"] = "bazbaz"; if ("bar" in foo) { // trueになる! console.log(foo["bar"]); }