Das Filtern eines Arrays aus allen Elementen eines anderen Arrays ist eine häufige Programmieraufgabe. In JavaScript würde man dazu normalerweise die Funktion .filter() verwenden. Allerdings kann es eine Herausforderung sein, zu verstehen, wie man der Funktion die zu entfernenden Werte bereitstellt.
Stellen Sie sich das folgende Szenario vor:
var array = [1,2,3,4]; var anotherOne = [2,4]; var filteredArray = array.filter(myCallback); // filteredArray should now be [1,3] function myCallBack(){ return element ! filteredArray; //which clearly can't work since we don't have the reference <,< }
Im obigen Beispiel versucht die Funktion myCallBack, ein Element zurückzugeben Das ist im gefilterten Array nicht vorhanden, aber diese Logik funktioniert nicht, da filteredArray beim Aufruf der Funktion noch nicht definiert ist.
Um ein Array mit der Funktion filter() zu filtern, sollte man eine Rückruffunktion übergeben, die für Elemente, die in das gefilterte Array aufgenommen werden sollen, „true“ und für Elemente, die entfernt werden sollen, „false“ zurückgibt. Das gefilterte Array wird dann erstellt, indem die Callback-Funktion auf jedes Element des ursprünglichen Arrays angewendet wird.
Im Fall des Filterns eines Arrays aus allen Elementen eines anderen Arrays kann die Callback-Funktion vereinfacht werden, wie in der Abbildung gezeigt Folgender Code:
var arr1 = [1,2,3,4], arr2 = [2,4], res = arr1.filter(item => !arr2.includes(item)); console.log(res); // Output: [1,3]
Hier durchläuft die Funktion filter() arr1 und ruft die Rückruffunktion für jedes Element auf. Die Callback-Funktion item => !arr2.includes(item) gibt true für Elemente zurück, die in arr2 nicht vorhanden sind, andernfalls false. Infolgedessen enthält das gefilterte Array res nur die Elemente [1,3], die nicht in arr2.
sindDas obige ist der detaillierte Inhalt vonWie filtere ich ein Array aus Elementen eines anderen Arrays in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!