我試圖遞歸地實現數組展平函數。這裏是代碼:遞歸地展開數組
function flatten(arr) {
var flatArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
flatArr.concat(flatten(arr[i]));
} else {
flatArr.push(arr[i]);
}
}
return flatArr;
}
console.log(flatten([1, 2, 3, 4, [5]]));
/*
result: [1, 2, 3, 4]
expected: [1, 2, 3, 4, 5]
*/
但我不知道爲什麼結果是不正確的。請幫我解釋一下。
問題是您沒有將'.concat'返回的數組賦值給''flatArr' var。在我的答案中看到一個工作示例。 –