gpt4 book ai didi

javascript - 递归地遍历一个对象(树)

转载 作者:IT王子 更新时间:2023-10-29 02:59:39 24 4
gpt4 key购买 nike

有没有办法(在 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 循环将遍历任何可枚举的属性,包括那些添加到对象原型(prototype)的属性。为避免对这些属性进行操作,您可以使用 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...
}
}

关于javascript - 递归地遍历一个对象(树),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549320/

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