gpt4 book ai didi

javascript - 如果在迭代 javascript 循环时使用 "in"和 "="运算符有什么区别?

转载 作者:行者123 更新时间:2023-11-28 21:11:23 24 4
gpt4 key购买 nike

如果我使用以下之一来迭代 javascript 数组,有什么区别:

for (var i = 0 ; i <abc.length :i++)  

for (var i in abc.lengh)

谢谢。

最佳答案

要迭代数组的元素,您应该使用以下形式:

var x = [1,2,3,4];

for (var i = 0, len = x.length; i < len; i++) {
// code here to access x[i]
}

要迭代对象的属性,您应该使用:

var house = {size: 3200, bedrooms: 5, garage: 2, color: "white", city: "San Francisco"};

for (var key in house) {
// access each property here as house[key]
}

尽管有时您可以在数组上使用第二种语法,但您会遇到麻烦,因为它会包含已添加到数组中的自定义属性,这些属性本身不是数组元素,这确实会混淆代码和导致微妙或不那么微妙的错误。

在第一个语法中添加 len 变量是一种速度优化,因为将 length 获取到局部变量中比在循环的每次迭代中访问 length 属性要快得多。不需要这样做。也可以这样做:

for (var i = 0; i < x.length; i++)

关于javascript - 如果在迭代 javascript 循环时使用 "in"和 "="运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528486/

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