我创建了以下函数来展平嵌套数组:
function steamroller(arr) {
arr = arr.reduce(function(a, b, i){
return a.concat(b);
},[]);
if (!Array.isArray(arr[arr.length-1])) {console.log(arr); return arr;}
steamroller(arr);
}
steamroller([1, [2], [3, [[4]]]]);
代码会将一个很好的扁平数组记录到控制台,但该函数返回' undefined'。
我很难过 - 这是为什么?!
答案 0 :(得分:3)
在递归调用steamroller
时,你错过了一个回复。固定代码:
function steamroller(arr) {
arr = arr.reduce(function(a, b, i){
return a.concat(b);
},[]);
if (!Array.isArray(arr[arr.length-1])) {console.log(arr); return arr;}
return steamroller(arr);
}
steamroller([1, [2], [3, [[4]]]]);
答案 1 :(得分:0)
即使没有回复也能为我工作(Firefox)