美好的一天!
任务是获得一个数组的平面版本,可能包括一些嵌套数组以及其他元素.用于预期的输入[1, [2], [3, [[4]]]]输出[1, 2, 3, 4].
FreeCodeCamp扰流警报.
当然,会想到递归解决方案,例如:
function steamrollArray(arr) {
var result = [];
for(var i = 0; i < arr.length; i++){
//part of interest
if (Array.isArray(arr[i])){
var nestedElements = steamrollArray(arr[i]);
for(var j = 0; j < nestedElements.length; j ++){
result.push(nestedElements[j]);
}
//</part of interest>.
} else {
console.log("pushing: " + arr[i]);
result.push(arr[i]);
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
它确实是这样的.样本运行的结果将是:
pushing: 1
pushing: 2
pushing: 3
pushing: 4
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
问题是:当我们使用concat添加nestedElements …