Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE8数组和冲突索引_Javascript_Jquery - Fatal编程技术网

Javascript IE8数组和冲突索引

Javascript IE8数组和冲突索引,javascript,jquery,Javascript,Jquery,我目前正在使用jquery1.8.3。我认为它将indexOf添加到了Array.prototype中,所以现在我的每个数组都将方法indexOf作为第一个元素。 执行for(var i in object)我总是将infexOf方法作为我的第一个元素,它对我的代码进行了bug 错误只发生在IE8上 我想要的是从所有数组中删除这个indexOf,或者无论如何,破解jquery/解决这个问题 PS:我甚至不确定是不是jquery导致了这个问题 谢谢。除了不使用for…in对数组进行迭代外,如果必须

我目前正在使用jquery1.8.3。我认为它将
indexOf
添加到了
Array.prototype
中,所以现在我的每个数组都将方法indexOf作为第一个元素。 执行
for(var i in object)
我总是将infexOf方法作为我的第一个元素,它对我的代码进行了bug

错误只发生在IE8上

我想要的是从所有数组中删除这个indexOf,或者无论如何,破解jquery/解决这个问题

PS:我甚至不确定是不是jquery导致了这个问题


谢谢。

除了不使用
for…in
对数组进行迭代外,如果必须使用
for…in
,请将其与
hasOwnProperty
组合,以判断您正在查看的属性是否真的属于所讨论的对象,或者来自原型:

for (var prop in myObject) {
    if (myObject.hasOwnProperty(prop)) {
        // this didn't come from the prototype.
    }
}

除了不使用
for…in
对数组进行迭代外,如果必须使用
for…in
,请将其与
hasOwnProperty
组合,以判断您正在查看的属性是否确实属于所讨论的对象,或来自原型:

for (var prop in myObject) {
    if (myObject.hasOwnProperty(prop)) {
        // this didn't come from the prototype.
    }
}

这里的正确答案是,您不应该使用
for(…in…
循环在Javascript中迭代数组

拥有一个数组的关键在于它有一个编号的元素序列,因此应该使用
for()
循环

for(var i=0; i<myArray.length; i++) {
     //do stuff here with myArray[i]
}

for(var i=0;i这里的正确答案是不应该使用
for(…in…
循环在Javascript中迭代数组

拥有一个数组的关键在于它有一个编号的元素序列,因此应该使用
for()
循环

for(var i=0; i<myArray.length; i++) {
     //do stuff here with myArray[i]
}

for(var i=0;ijQuery不会向本机对象添加任何内容。它必须来自其他地方。无论如何,您不应该在
中使用
for…来迭代数组(请参见(第二个黄色框)).for
循环或jQuery的
$使用
。每个
数组。indexOf
在IE8中没有实现,我也不认为jQuery添加了它。我只是检查了源代码,jQuery肯定没有添加
indexOf
。但是,Prototype会添加。jQuery提供
$。inaray()
而不是对阵列原型进行黑客攻击。我猜这是来自另一个库。(您可能想了解一下——将jQuery和prototype包含在同一页面中并不理想;这有点浪费带宽,因为它们都做类似的事情)jQuery不会向本机对象添加任何内容。它必须来自其他地方。无论如何,您不应该在
中使用
for…来迭代数组(请参见(第二个黄色框)).for
循环或jQuery的
$使用
。每个
数组。indexOf
在IE8中没有实现,我也不认为jQuery添加了它。我只是检查了源代码,jQuery肯定没有添加
indexOf
。但是,Prototype会添加。jQuery提供
$。inaray()
而不是对阵列原型进行黑客攻击。我猜这是来自另一个库。(您可能想了解一下——将jQuery和prototype包含在同一页面中并不理想;这有点浪费带宽,因为它们都做类似的事情)