gpt4 book ai didi

javascript - 数组迭代陷阱

转载 作者:行者123 更新时间:2023-11-29 15:43:05 25 4
gpt4 key购买 nike

我总是得到意外输出的这段代码出了什么问题?

var foo = [3,4,5];

for ( var i in foo ) {
if ( i == 1 ) {
foo.unshift(6,6);
}
document.write('item: '+foo[i]+"<br>")
}
output:
item: 3
item: 6
item: 3

我能为此找个合适的理由吗?谢谢

最佳答案

我在 IE8 中得到的输出这是

item: 3
item: 6
item: 3
item: 4
item: 5

这是正确的。如果你想在 unshift 之后完全更新值使用另一个循环

var foo = [3,4,5];
for ( var i in foo ) {
if ( i == 1 ) {
foo.unshift(6,6);
}
}
for ( var i in foo )
document.write('item: '+foo[i]+"<br>")

哪个会给出

item: 6
item: 6
item: 3
item: 5
item: 4

在您调用 document.write('item: '+foo[i]+"<br>") 时的代码中与 i = 0你的foo[0]3对于 i=1unshift 之后foo == [6,6,3,4,5]foo[1]6 .

关于javascript - 数组迭代陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15963614/

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