Ich versuche, eine rekursive Funktion zu schreiben, die ein Array mit geschachtelten Arrays übernimmt und alle Werte in einem einzigen Array setzt. Im Moment funktioniert es manchmal, aber manchmal nicht.Verwirrt über irreführende Funktionen
function steamrollArray(arr) {
var newArr = [];
var func = function(array){
for(i=0; i<array.length; i++){
if(Array.isArray(array[i])){
func(array[i]);
}
else {
newArr.push(array[i]);
}
}
};
func(arr);
return newArr;
}
Als ich steamrollArray([1, [2], [3, [[4]]]])
laufen funktioniert es, aber wenn ich steamrollArray([[1], [[2]], [3, [[4]]]]);
laufen sie das 2 aus irgendeinem Grund nicht enthalten, und wenn ich steamrollArray([1, [], [3, [[4]]]])
mein Browser stürzt ab laufen. Danke für jede Einsicht, die Sie geben können!
Ich empfehle Schreiben in die Konsole und zu sehen, wo es abstürzt. Hast du das schon probiert? – Forklift
habe ich mit dem ersten und zweiten Beispiel gemacht. Der erste macht alles perfekt, und das zweite Beispiel sieht aus, als würde alles funktionieren, aber es überspringt die zweite Schleife aus irgendeinem Grund. Ich habe nicht einmal mit dem, der den Browser abgestürzt ist, herumgespielt. – Alex