getFirstHalf函數傳回結果時出現問題
P粉311617763
P粉311617763 2023-09-22 08:49:09
0
1
809

正在開發一個函數,該函數接受一個數組並傳回該數組的前一半,但在返回之前,它會呼叫自身,直到數組的長度為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粉311617763
P粉311617763

全部回覆(1)
P粉009186469

你需要從遞迴中回傳結果:

getFirstHalf(firstHalf);

改為

return getFirstHalf(firstHalf);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板