Javascriptの配列で、ある要素がその配列に存在しているかを知りたい。
さらに存在するのであれば何番目に存在するのか?
といった時はindexOfメソッドが使えるが、ついつい間違ったコードを書いてしまいがちなのでここにメモしておく。
間違ったコードというのは
var list = ["Hello", "Good morning", "Good night"]; if (list.indexOf("Hello")) { alert("Hello"); }
と、こんな感じのコードを書いてアラートが表示されるのを期待しても何も起きない。
さらにlistに含まれていない要素を引数に指定すると今度はアラートが表示されてしまう。
これはindexOfメソッドが返すオブジェクトがindex番号なので配列の最初の要素は0という事で条件判断したときにfalseになってしまうからだ。
要素が見つからなければ-1を返すが今度はこれがtrueと判定されてしまう。
なので正しくは
if (list.indexOf("Hello") != -1)
と書かなければいけない。
カテゴリ:
トラックバック(0)
トラックバックURL: http://blog.beanz-net.jp/beanz_mtos/mt-tb.cgi/10
コメントする