gpt4 book ai didi

javascript - 迭代属性进入无限循环

转载 作者:行者123 更新时间:2023-11-29 20:49:21 25 4
gpt4 key购买 nike

我编写了一个脚本来使用 Object.keys() 方法迭代对象的属性。但是当我运行时,它进入了无限循环。

var employee = {
"firstName" : "Krishna",
"lastName" : "Majety",
"age" : 29,
"address" : {
"city" : "Bangalore",
"area" : "Marthalli"
}
}


function printProperties(object, objectName, tab){
var props = Object.keys(object);

for(i = 0; i < props.length; i++){
property = props[i];

if(object[property] instanceof Object){
printProperties(object[property], objectName+"."+property, " " + tab);
}else{
console.log(tab + objectName + "." + property + " => " + object[property]);
}
}
}

printProperties(employee, "employee", "")

如果有人能解释这种行为的原因,那就太好了。

最佳答案

您的循环迭代器和属性变量是全局范围的,因此嵌套对象将重置它们。解决方法是使用 letvar 来限定范围,或者使用像 forEach 这样的数组方法并完全跳过迭代器。

for (let i = 0; ...
let property = props[i];

关于javascript - 迭代属性进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688987/

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