正在開發一個函數,該函數接受一個數組並傳回該數組的前一半,但在返回之前,它會呼叫自身,直到數組的長度為1:
const getFirstHalf = function (array) { const firstHalf = []; for (let i = 0; i < Math.trunc(array.length / 2); i++) { firstHalf.push(array[i]); } if (firstHalf.length !== 1) { getFirstHalf(firstHalf); } return firstHalf; };
一切都如預期運作,直到傳回結果的那一行,陣列會得到先前的值,直到它是陣列的第一個狀態的前一半。希望你明白我的意思。
例如:
const myArray = [1,2,3,4,5,6,7,8]; console.log(getFirstHalf(numbers));
我期望得到[1]作為結果,但我得到[1,2,3,4]。
P粉0091864692023-09-23 00:09:10
你需要從遞迴中回傳結果:
將
getFirstHalf(firstHalf);
改為
return getFirstHalf(firstHalf);