Javascript 在运行时更改每个循环的嵌套深度级别
我希望能够以指定的深度对同一集合进行迭代。 例如:Javascript 在运行时更改每个循环的嵌套深度级别,javascript,arrays,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) {
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中有什么方法可以做到这一点吗?您可以编写一个函数来跟踪您的位置,并删除一个直到达到零为止
function goDeep (depth, array, func) {
if ( depth && array && array.length ) {
array.forEach(function (element) {
goDeep(depth-1, element, func)
});
} else {
func(array)
}
}
这叫做递归;您应该定义func,以便它在数组中遇到另一个级别时调用自己,并查看此注释以获取建议。