Heim > Fragen und Antworten > Hauptteil
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粉0091864692023-09-23 00:09:10
你需要从递归中返回结果:
将
getFirstHalf(firstHalf);
改为
return getFirstHalf(firstHalf);