我知道 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 中没有发生问题。感谢任何和所有帮助。