在运行时更改每个循环的嵌套深度级别

时间:2015-02-20 16:33:30

标签: javascript arrays

我希望能够将同一个集合迭代到指定的深度。 例如:

function (depth){
    var arr = [1,2,3];

    //depth = 1

    arr.forEach(function(val) { 
        func(val); 
    });


    // depth = 2

    arr.forEach(function (val) { 
            arr.forEach( function (val2) { 
                func(val, val2); 
            });
    });

    //and so on

}

有没有办法在JS中做到这一点?

1 个答案:

答案 0 :(得分:0)

你编写了一个跟踪你的位置的函数,并删除一个直到你达到零的函数。

function goDeep (depth, array, func) {
  if ( depth && array && array.length ) {
    array.forEach(function (element) {
      goDeep(depth-1, element, func)
    });
  } else {
     func(array)
  }
}