有没有办法(在 jQuery 或 JavaScript 中)循环遍历每个对象及其子对象和孙对象等等?
如果是这样……我也能读到他们的名字吗?
Example:
foo :{
bar:'',
child:{
grand:{
greatgrand: {
//and so on
}
}
}
}
所以循环应该做这样的事情......
loop start
if(nameof == 'child'){
//do something
}
if(nameof == 'bar'){
//do something
}
if(nameof =='grand'){
//do something
}
loop end
您正在寻找for...in https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in loop:
for (var key in foo)
{
if (key == "child")
// do something...
}
意识到for...in
循环将迭代任何可枚举属性,包括添加到对象原型的属性。为了避免对这些属性进行操作,您可以使用hasOwnProperty
方法来检查属性是否只属于该对象:
for (var key in foo)
{
if (!foo.hasOwnProperty(key))
continue; // skip this property
if (key == "child")
// do something...
}
递归执行循环就像编写递归函数一样简单:
// This function handles arrays and objects
function eachRecursive(obj)
{
for (var k in obj)
{
if (typeof obj[k] == "object" && obj[k] !== null)
eachRecursive(obj[k]);
else
// do something...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)