我希望迭代此JSON并为其级别添加一个键值对。
例如:
第一级层次结构应为0级,第二级层次应为1级,依此类推。
var json = [{
"name": "parent 1",
"children": [
{
"name": "child 1",
"children": [
{
"name": "child 11"
}
]
},
{
"name": "child 2"
}
]
}];
期望的json:
var json = [
{
"name": "parent 1",
"level": "0",
"children": [
{
"name": "child 1",
"level": "1",
"children": [
{
"name": "child 11",
"level": "2"
}
]
},
{
"name": "child 2",
"level": "1"
}
]
}];
我认为使用Array.protoype.map()
可以达到所需的目标。
map()方法创建一个新数组,其中填充了在调用数组中每个元素上调用提供的函数的结果。
请为您的问题找到可能的解决方案:
Array.protoype.map()
我希望有帮助!
您可以使用Lodash遍历对象和数组:
const data = [{"name": "parent 1","children": [{"name": "child 1","children": [{"name": "child 11"}]},{"name": "child 2"}]}];
const addLevel = (array, level) => {
if (!level) { level = 0; }
return array.map(e => {
if (e.children) { e.children = addLevel(e.children, level + 1); }
return { ...e, level };
});
};
const result = addLevel(data);
console.log(result);
for
https://lodash.com/docs/4.17.15#forEach
一个简单的解决方案是
var json = [{
"name": "parent 1",
"children": [
{
"name": "child 1",
"children": [
{
"name": "child 11"
}
]
},
{
"name": "child 2"
}
]
}];