gpt4 book ai didi

javascript - JavaScript foreach 中的总和索引

转载 作者:行者123 更新时间:2023-11-28 11:07:41 26 4
gpt4 key购买 nike

在下面的代码示例中我得到了一个奇怪的行为

var data = ['xxx', 'yyy'];
for (var i in data)
{
var a = i;
var b = data[i];
}

前两次迭代工作得很好。我在 i 中得到索引 "0""1",但随后它会额外循环一次,现在是 i“总和”。这是设计使然还是这个额外的迭代是用来做什么的?在我的例子中,结果总是空的,它弄乱了我的代码。有没有办法不做他的额外循环?

BR安德烈亚斯

最佳答案

看起来您(或您包含的其他一些代码)已在数组原型(prototype)上添加了额外的属性。您应该做的是检查您正在迭代的对象是否实际上具有该属性本身,而不是其原型(prototype):

for (i in data) {
if (data.hasOwnProperty(i)) {
a = i;
b = data[i];
}
}

也就是说,您永远不应该在数组上使用 for .. in 。使用常规的 for 循环。

请参阅此处了解更多信息:http://yuiblog.com/blog/2006/09/26/for-in-intrigue/

关于javascript - JavaScript foreach 中的总和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com