簡體   English   中英

使用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); 

這是你需要的,還是你需要更具體的東西? 根據你上次的評論,如果你還需要其他任何東西,我會有點困惑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM