ブラウザのバージョンの違いによる落とし穴に注意してください。
Array.prototype.Contains = function (str ) {
if (!str)
return false;
for (var i = 0; i if (this[i] == str) {
戻り値
}
}
戻り値
}
var tmp = new Array("1"); tmp.push ("2");
tmp.push("3");
for ( var i in tmp ) {
alert(tmp[ i]) ;
}
alert("Traverse array");
for ( var i=0;ialert(tmp[i]); 🎜>}
IE8 以外のブラウザ (IE7、IE9、Chrome、FF、これらのみがテストされます) の場合
属性と配列をトラバースすると、結果は次のようになります。同じ。
ただし、IE8 では結果が若干異なります。IE8 では、プロトタイプ チェーン拡張メソッドが属性として出力されます。
この違いが発見された理由は、配列の各要素を走査するためにコード内で (var i in tmp) を使用した奇妙なバグが解決されたためです。メソッドが使用されていない場合、この問題が発生します。
したがって、配列要素を走査する場合でも、(var i=0;i