配列キー値の存在チェック
配列・連想配列のキーが存在するかのチェック方法のまとめ。
通常配列のキー存在チェック
チェック方法は、単純に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"]);
}