Hier ist, was ich zu tun habe:Entfernen eines Elements aus einem Array mit Filtermethode.
Sie werden mit einem anfänglichen Array (das erste Argument in der Zerstörer-Funktion), gefolgt von einem oder mehreren Argumenten zur Verfügung gestellt werden. Entfernen Sie alle Elemente aus dem ursprünglichen Array, die denselben Wert wie diese Argumente haben.
Mein Code:
function destroyer(arr) {
for(i=1; i < arguments.length; i++) {
x = arr.filter(filterer);
}
function filterer(val) {
return val !== arguments[i];
}
return x;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Aber es funktioniert nicht richtig und gibt den Ausgang Array nicht das gefilterte ein. Wo ist mein Fehler?
var x = arr.slice (0) wäre besser, um nicht Eingabearray – pranavjindal999
@PranavJindal 'filter' ist eine reine Funktion zu ändern und ändert nicht das Array es aufgerufen wird. Die Verwendung von 'slice' ist unnötig und fügt dem Overhead dieser Methode nur eine weitere Array-Erstellung hinzu. – gyre
@gyre Filter nicht aber '' 'x = x.filter (filterer (Argumente [i])); '' 'tut – pranavjindal999