Javascript 属性的迭代进入无限循环
我编写了一个脚本,使用object.keys()方法迭代对象的属性。但当我运行时,它进入无限循环Javascript 属性的迭代进入无限循环,javascript,Javascript,我编写了一个脚本,使用object.keys()方法迭代对象的属性。但当我运行时,它进入无限循环 var employee = { "firstName" : "Krishna", "lastName" : "Majety", "age" : 29, "address" : { "city" : "Bangalore", "area" : "Marthalli" } } function printProperties(object, objectName
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", "")
var员工={
“名字”:“克里希纳”,
“姓氏”:“Majety”,
“年龄”:29岁,
“地址”:{
“城市”:“班加罗尔”,
“区域”:“Marthalli”
}
}
函数printProperties(对象、对象名、选项卡){
var props=Object.keys(对象);
对于(i=0;i“+object[property]);
}
}
}
打印属性(雇员,“雇员”,“雇员”)
如果有人能解释这种行为的原因,那就太好了。您的循环迭代器和属性变量是全局范围的,因此嵌套对象将重置它们。修复方法是使用
let
或var
,或使用类似forEach
的数组方法,并完全跳过迭代器
for (let i = 0; ...
let property = props[i];
谢谢你的帮助……:)