ハッキングバカ

プログラミングに関するメモ

配列に要素が含まれているかを調べる [Javascript]

Python と同じような感覚で in を使うと痛い目を見る。

arr = [1,2,4];
1 in arr;
// -> true
// よしよし
4 in arr;
// -> false
// あれ?

配列の要素そのものではなくインデックスの存在を調べているらしい。
参考: in - JavaScript リダイレクト 1 | MDN

正しくは indexOf を使う。
存在しない場合に -1 が返るので、 != -1 のようにやるしかないか。

arr = [1,2,4];
arr.indexOf(4):
// -> 2
arr.indexOf(5);
// -> -1