javascript – Object中的多维数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Object中的多维数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2152字,纯文字阅读大概需要4分钟。
内容图文
请仔细阅读这个javascript对象:
var obj = [{
id: "A",
children: [{
id: "B",
children: [{
id: "C",
children: [{
id: "D",
children: [{
id: "E",
children: [{
id: "F"
}]
}]
}, {
id: "G",
children: {
id: "H"
}
}]
}, {
id: "I"
}]
}, {
id: "J",
children: [{
id: "K"
}]
}]
}, {
id: "L"
}, {
id: "M",
children: {
id: "N",
children: [{
id: "O"
}]
}
}, {
id: "P"
}];
如何编写JavaScript代码以递归方式解析它并在控制台中打印所有ID,以便输出如下所示:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
这是我能达到的目标.之后我想不出任何逻辑.
for ( i=0 ; i < obj.length ; i++ ){
var objId = obj[i];
for( j=i; j<1 ; j++){
console.log(obj[j].id);
console.log(obj[j].children[j].id);
}
}
我不明白应该在这里应用什么逻辑.帮忙.
解决方法:
您可以使用depth-first search算法的迭代和递归方法.
编辑:为子对象扩展.
var data = [{ id: "A", children: [{ id: "B", children: [{ id: "C", children: [{ id: "D", children: [{ id: "E", children: [{ id: "F" }] }] }, { id: "G", children: { id: "H" } }] }, { id: "I" }] }, { id: "J", children: [{ id: "K" }] }] }, { id: "L" }, { id: "M", children: { id: "N", children: [{ id: "O" }] } }, { id: "P" }];
data.forEach(function iter(a) {
console.log(a.id);
if (Array.isArray(a.children)) {
a.children.forEach(iter);
return;
}
if (a.children && typeof a.children === 'object') { // omit this part
iter(a.children); // if children is
} // always an array
});
此版本收集所有必需的数据并将其返回到数组中.
var data = [{ id: "A", children: [{ id: "B", children: [{ id: "C", children: [{ id: "D", children: [{ id: "E", children: [{ id: "F" }] }] }, { id: "G", children: { id: "H" } }] }, { id: "I" }] }, { id: "J", children: [{ id: "K" }] }] }, { id: "L" }, { id: "M", children: { id: "N", children: [{ id: "O" }] } }, { id: "P" }],
result = data.reduce(function iter(r, o) {
r.push(o.id);
if (Array.isArray(o.children)) {
return o.children.reduce(iter, r);
}
if (o.children && typeof o.children === 'object') { // omit this part
return iter(r, o.children); // if children is
} // always an array
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
内容总结
以上是互联网集市为您收集整理的javascript – Object中的多维数组全部内容,希望文章能够帮你解决javascript – Object中的多维数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。