搜索

首页  >  问答  >  正文

getFirstHalf函数返回结果时出现问题

正在开发一个函数,该函数接受一个数组并返回该数组的前一半,但在返回之前,它会调用自身,直到数组的长度为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粉311617763P粉311617763436 天前789

全部回复(1)我来回复

  • P粉009186469

    P粉0091864692023-09-23 00:09:10

    你需要从递归中返回结果:

    getFirstHalf(firstHalf);
    

    改为

    return getFirstHalf(firstHalf);
    

    回复
    0
  • 取消回复