function flattenWithDepth (array, result, depth) {
for (var i = 0; i < array.length; i++) {
var value = array[i]
if (depth > 0 && Array.isArray(value)) {
flattenWithDepth(value, result, depth - 1)
} else {
result.push(value)
}
}
return result
}
var arr = [1, [2,4,5,6],6 ,[5,[8,6,7,[9,12]]]];
var result = [];
console.log(flattenWithDepth(arr, result, 3));
是不是这种:flatten
多维数组
调用示例
如果结构比较简单,可以直接使用reduce实现,复杂的可以参考楼上。
多维数组不等于嵌套数组
多维数组的维数是已知的且固定的
underscore 中有,如果有兴趣的话可以看下我的源码解析 https://github.com/hanzichi/underscore-analysis/issues/10