通过javascript/lodash迭代嵌套对象数组
iterating through array of nested objects with javascript/lodash
我有一个表示嵌套导航列表的对象数组。
[
{
name: 'one',
link: 'blah/blah',
pages: [
{
name: 'one A'
link: 'blah/blah',
pages: []
},
{
name: 'one B'
link: 'blah/blah',
pages: []
},
{
name: 'one C'
link: null,
pages: [
{
name: 'one C I'
link: 'blah/blah',
pages: []
}
]
}
]
}
]
第一层对象可以有链接和页面,嵌套的对象要么有链接,要么有页面。我不能假设嵌套的深度有限制。每个状态都需要一个对象,包括它的名称,它的链接(如果存在)和它的所有父状态。我目前的解决方案没有考虑到超过3层的嵌套,并且为每一层添加支持是费力的。
我还需要能够搜索结果的对象数组,以便稍后获得它们的链接,如果这对解决方案有影响的话。
我需要一个javascript解决方案,但也可以(并希望)使用包含在lodash库中的函数
下面是递归遍历数组的方法:
http://jsfiddle.net/yLnZe/37/var arrPages = [{
name: 'one',
link: 'blah/blah',
pages: [{
name: 'one A',
link: 'blah/blah',
pages: []
},
{
name: 'one B',
link: 'blah/blah',
pages: []
},
{
name: 'one C',
link: null,
pages: [{
name: 'one C I',
link: 'blah blah',
pages: []
}]
}]
}];
function recursiveFunction(collection){
_.each(collection, function(model){
console.log(model);
if(model.pages.length > 0){
recursiveFunction(model.pages);
}
});
};
recursiveFunction(arrPages);
这是你需要的,还是你需要更具体的东西?根据你最后的评论,我有点困惑,如果你还需要什么。
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何打印嵌套对象的所有值
- 设置嵌套对象属性的更好方法
- 嵌套对象结构
- 如何递归地获取嵌套对象中所有子对象的列表
- 更改嵌套对象的父子相关id
- 如何通过json对象数组为嵌套对象赋值
- Ember.js(2.5.0)如何设置嵌套对象值
- 嵌套对象文本访问父级
- 如何对两个嵌套对象进行排序
- 在javascript中使用方括号表示法的嵌套对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- 更新嵌套对象的多个字段
- MongoDB嵌套对象数组后查询
- 在流星中插入嵌套对象
- 将嵌套对象数据添加到窗体中
- Chai深度包含了对嵌套对象的断言
- 使用Angular.js解析JSON中的嵌套对象数组
- 如何以编程方式添加到可变嵌套对象中
- Javascript嵌套对象访问根级别