Heim  >  Fragen und Antworten  >  Hauptteil

Es liegt ein Problem vor, wenn die Funktion getFirstHalf das Ergebnis zurückgibt

Ich entwickle eine Funktion, die ein Array nimmt und die erste Hälfte des Arrays zurückgibt, sich aber vor der Rückgabe selbst aufruft, bis die Länge des Arrays 1 beträgt:

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;
};

Alles funktioniert wie erwartet, bis die Zeile, in der das Ergebnis zurückgegeben wird, den vorherigen Wert erhält, bis es die erste Hälfte des ersten Zustands des Arrays ist. Ich hoffe, Sie verstehen, was ich meine.

Zum Beispiel:

const myArray = [1,2,3,4,5,6,7,8];
console.log(getFirstHalf(numbers));

Ich hatte erwartet, als Ergebnis [1] zu bekommen, aber ich bekam [1,2,3,4].

P粉311617763P粉311617763393 Tage vor771

Antworte allen(1)Ich werde antworten

  • P粉009186469

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

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

    getFirstHalf(firstHalf);
    

    改为

    return getFirstHalf(firstHalf);
    

    Antwort
    0
  • StornierenAntwort