有没有一种方法(使用jQuery或JavaScript)来遍历每个对象及其子代和孙代等等?
如果是这样...我还能读他们的名字吗?
例:
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
循环:
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...
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句