配列にその要素が含まれているかどうかを確認するのにループを使うのが嫌だったので(数も少なかったし)switch
で対応していたけど、なんとなく不便な気がしてきた。
ハッシュの場合は in
でそのキーが存在するかどうかを確認する方法があるようなのでこれを使ってみた。
var h = { "T2": null, "T3": null, }; var a = ["T1", "T2", "T3", "T4"]; for (var i = 0; a[i] != null; i++) { if (a[i] in h) alert("h has " + a[i]); }
いちいち "key": null
を書くのは面倒だけどスクリプトの好きなところに書いたりできるのでまぁいいか。
※modern.IE の IE 9 でテストしてみたところ .indexOf()
が使えるようなのでこちらの方が簡単か。
あと昨日、要素が height
属性を持っているか調べるのに .hasAttribute("height")
を使ったスクリプトを書いたけど、これ IE 対応してないのね…。なので以下のようにしてみた。
if (e["height"] != null) alert(e.tagName + " has height");
う〜ん、なんかよろしくない感じがする。.removeAttribute()
が使えるなら .hasAttribute()
も使えるようにして欲しい。本当に IE は面倒だ。