Arbeiten an einer Programmieraufgabe. Das Ziel besteht darin, eine Funktion zu erstellen, die "die Elemente eines Arrays (erstes Argument) ablegt, beginnend von vorne, bis das Prädikat (zweites Argument) wahr zurückgibt."Javascript - Übergeben Array [0] direkt vs Array [0] von i = 0 Array [i] fundamental anders innerhalb einer "Wenn" -Anweisung?
dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length-1; i++) {
if(func(arr[i])) {
break;
}
else {
arr.splice(i,1);
i--;
}
}
return arr;
}
kehrt [4]
, die die falsche Antwort ist
jedoch folgendes:
dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length; i++) {
if (func(arr[0])) {
break;
}
else {
arr.shift();
i--;
}
}
return arr;
}
kehrt []
, die die richtige Antwort ist
ich es von Hand alle heraus geschrieben und es sieht Wie es sich herausstellen sollte. Hat es etwas mit Zwang zu tun, das ich nicht verstehe?
Was ist der Punkt der Erhöhung von "i", wenn Sie es immer in der "else" -Klausel dekrementieren? – Barmar
Es macht wirklich keinen Sinn, eine 'for()' - Schleife in Ihrem Code zu verwenden, da 'i -' und 'i ++' sich gegenseitig rückgängig machen. Verwenden Sie einfach 'while (arr.length> 0)', um eine Schleife zu machen, bis die 'Pause' beendet ist oder Sie alles entfernt haben. – Barmar