Javascript IE8数组和冲突索引
我目前正在使用jquery1.8.3。我认为它将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对数组进行迭代外,如果必须
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包含在同一页面中并不理想;这有点浪费带宽,因为它们都做类似的事情)