Die Aufgabe ist:Array.filter nicht Array Aktualisierung
Sie werden mit einem anfänglichen Array (das erste Argument in der Zerstörers Funktion) bereitgestellt werden, gefolgt von einem oder mehreren Argumenten. Entfernen Sie alle Elemente aus dem ursprünglichen Array, die denselben Wert wie diese Argumente haben.
Während durch sie arbeiten, fand ich einige Array.filter Verhalten Ich bin zu kämpfen, zu verstehen:
function destroyer(arr) {
for (var i = 1; i<arguments.length; i++){
toDelete = arguments[i];
arr.filter(isItIn);
}
return arr;
}
function isItIn(item, undefined, array){
return item!=toDelete;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Meine Absicht war hier durch die Elemente iterieren 1+ der Argumente, arr.filter
jedes Mal aufgerufen wird. Arr.filter
ruft dann isItIn
auf, die prüft, ob der aktuell geprüfte Artikel derjenige ist, nach dem ich suche. arr
wird jedoch unverändert zurückgegeben. Wenn ich isItIn
ändern:
function isItIn(item, undefined, array){
return item==1;
}
zu testen, ist es nach wie vor unverändert, jedoch console.log
s in dem ursprünglichen Schreiben von isItIn
zeigt, dass es die Argumente korrekt empfangen (oder so weit, wie ich gedacht habe bei zu bestimmen, dest.
Bitte beachten Sie, dass ich das Problem durch eine andere Route gelöst habe, ich bin nicht auf der Suche nach einer Lösung für das Problem, nur eine Erklärung, wo mein ursprünglicher Code falsch gelaufen ist.
Oh my ... Wenn Sie irgendeine Ahnung, wie lange ich das sah habe, – MrB