递归Javascript数组

时间:2015-07-02 15:55:30

标签: javascript

我有一个像这样的数组,我想迭代每个元素,直到它们没有属性" sub"。我怎么能用javascript做到??? 我不知道" sub"他们有。

var items = [
    { title: 'a' },
    { title: 'b', sub: [
        { title: 'ba' }, 
        { title: 'bb' }
    ] },
    { title: 'c', sub: [
        { title: 'ca', sub: [
            { title: 'caa' },
            { title: 'cba' }
        ] }
    ] }
];

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容递归迭代数组:

function iterateArray(array){
    array.forEach(function(item){
        var title = item.title;
        console.log(title);
        if(item.sub){
            iterateArray(item.sub);
        }
    });
}

iterateArray(items);输出将是

一个, b, BA, BB, C, CA, CAA, CBA

答案 1 :(得分:0)

通常,循环使用具有未知嵌套级别的数组数组并对整个对象中的每个项执行某些操作的最佳方法是使用递归。

function doThing(arr) {
    if ( typeof(arr) == "object") {
        for (var i = 0; i < arr.length; i++) {
            doThing(arr[i]);
        }
    }
    else {
    //Do your thing with this item!
    }
}