写一个循环,用js遍历每个children元素
Write a loop and iterate each children element using js
我下面有一个object。我需要编写一个 for 循环,它迭代每个 children
和显示 ID。
我使用了下划线库但没有找到解决方案
*[
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
} {
Id:2,
Name:"Test",
children:[
]
}
]*
你可以重新执行:
var items= [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
}, {
Id:2,
Name:"Test",
children:[
]
}
];
displayIds(items);
function displayIds(datas) {
datas.forEach(function(data) {
console.log(data.Id);
if (data.children) {
displayIds(data.children);
}
});
}
你可以像这样使用递归
var obj = [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
}, {
Id:2,
Name:"Test",
children:[
]
}
]
function showIds(obj, i=0) {
if(!obj[i]) return
console.log(obj[i].Id);
showIds(obj, i+1)
if(obj[i].children) showIds(obj[i].children);
}
showIds(obj)
var data = [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
},
{
Id:2,
Name:"Test",
children:[
]
}
];
showId(data);
function showId(data){
for(var i = 0; i < data.length; i++){
console.log(data[i].Id);
if(data[i].children.length > 0){
showId(data[i].children);
}
}
}
我下面有一个object。我需要编写一个 for 循环,它迭代每个 children 和显示 ID。
我使用了下划线库但没有找到解决方案
*[
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
} {
Id:2,
Name:"Test",
children:[
]
}
]*
你可以重新执行:
var items= [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
}, {
Id:2,
Name:"Test",
children:[
]
}
];
displayIds(items);
function displayIds(datas) {
datas.forEach(function(data) {
console.log(data.Id);
if (data.children) {
displayIds(data.children);
}
});
}
你可以像这样使用递归
var obj = [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
}, {
Id:2,
Name:"Test",
children:[
]
}
]
function showIds(obj, i=0) {
if(!obj[i]) return
console.log(obj[i].Id);
showIds(obj, i+1)
if(obj[i].children) showIds(obj[i].children);
}
showIds(obj)
var data = [
{
Id:1,
Name:"Test",
children:[
{
Id:11,
Name:"Test",
children:[
{
Id:113,
Name:"Test",
children:[
]
},
{
Id:114,
Name:"Test",
children:[
]
}
]
},
{
Id:12,
Name:"Test",
children:[
]
},
{
Id:13,
Name:"Test",
children:[
{
Id:115,
Name:"Test",
children:[
{
Id:1111,
Name:"Test",
children:[
]
}
]
}
]
},
{
Id:14,
Name:"Test",
children:[
]
}
]
},
{
Id:2,
Name:"Test",
children:[
]
}
];
showId(data);
function showId(data){
for(var i = 0; i < data.length; i++){
console.log(data[i].Id);
if(data[i].children.length > 0){
showId(data[i].children);
}
}
}