在這里,我試圖通過呼叫 shift 函式使用遞回來清空陣列,但無論如何我遇到了錯誤,請幫忙。
let arr = [1,2,3,4];
function del(arr){
if(arr.length === 0){
return []
}else {
let result = arr.shift();
return del(result)
}
}
console.log(del(arr))
TypeError: arr.shift is not a function
uj5u.com熱心網友回復:
您需要在移動專案后移交陣列。
Array#shift回傳/洗掉索引為零或undefined陣列為空的專案。
function del(arr) {
if (arr.length === 0) return arr;
arr.shift();
return del(arr);
}
const arr = [1, 2, 3, 4]; // keep the variable/omit reassignment
// just to give proof
console.log(del(arr) === arr); // same object reference
console.log(arr); // empty array
uj5u.com熱心網友回復:
如果您要做的只是清空陣列,則可以執行以下操作:
let arr = [1, 2, 3, 4];
arr.splice(0, arr.length);
console.log(arr);
uj5u.com熱心網友回復:
檔案說:
shift() 方法從陣列中洗掉第一個元素并回傳洗掉的元素。此方法更改陣列的長度。
而不是 return del(result),它將del使用移位的元素作為引數呼叫,您應該呼叫del(arr).
let arr = [1,2,3,4];
function del(arr){
if(arr.length === 0){
return []
}else {
let result = arr.shift(); //not using result, so no need to declare that variable
return del(arr)
}
}
console.log(del(arr))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530712.html
標籤:javascript递归
