Mein Ziel ist es, eine Funktion zu schreiben, die ein Array flacht. So sollte zum Beispiel [1, [2,3]] zu [1,2,3] werden. Ich habe es mit einer rekursiven Methode wie unten beschrieben versucht, aber es erzeugt eine endlose Schleife.Javascript Rekursive Fehler
function steamrollArray(arr) {
var resultArray = [];
function flatArray(array) {
for (i = 0; i < array.length; i++){
if (Array.isArray(array[i])) {
flatArray(array[i]);
} else resultArray.push(array[i]);
}
}
flatArray(arr);
return resultArray;
}
steamrollArray([1, [2,3]]);
Was ist mein Fehler?
Vielen Dank im Voraus
Werfen Sie einen Blick in [ 'Array.prototype.reduce'] (https: // Entwickler .mozilla.org/de-DE/docs/Web/JavaScript/Referenz/Globale_Objekte/Array/Reduzieren). – Mouser
Auch 'steamrollArray ([1, [2, 3]])' erzeugt '[1, 2, 3]' wie erwartet. – Assan
ja, nur getestet, es funktioniert auf Chrome –