IE8以前にはindexOf関数がないことを知っています。私は次のように定義しています。
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
}
配列内の値のインデックスを正しく取得できますが、IE8 以前を使用すると、配列の末尾に関数が追加されます。したがって、私は次のようなものを得ています:
obj.obj2[0] = 'data'
obj.obj2[1] = 'other data'
obj.obj2['indexOf'] = [definition of indexOf function]
当然のことながら、これはサイトの他のすべてを壊しています。IE10 または 9 では問題は発生していません。