Erklären einige Dinge:
Array.indexOf Verfahren ist ein Verfahren, das ein Array für ein bestimmtes Element sucht und gibt den Index des Elements, wenn er sie findet. Wenn nicht, gibt es -1 zurück.
Array.filter empfängt eine Rückruffunktion. Diese Callback-Funktion wird einmal für jedes Element des Arrays aufgerufen und sollte true zurückgeben, wenn das Element im gefilterten Ergebnis vorhanden sein sollte, oder false, wenn dies nicht der Fall sein sollte. Beispiel: [1, 2, 3].filter(function(value) { return value < 3 });
würde [1, 2]
zurückgeben.
Sie übergeben also 2 Arrays zu diffArray. Das b-Array wird gefiltert und die Filterfunktion durchsucht ein Array nach jedem Element des b-Arrays und gibt jedes Element des b-Arrays zurück, das nicht in einem Array vorhanden ist (jedes Element, das indexOf === -1 hat);
Also die b Elemente sind [1, "1", 3, 4]
. Schauen sie sich in sie Schritt für Schritt:
- 1 in einem vorhanden ist, so zurück es nicht, weil wir für die Elemente nicht in einem
- „1“ ist nicht in einem so es wieder suchen . ein Array hat 1 Element, aber das ist eine andere Art von "1"
- 3 ist vorhanden ist ein so ist es nicht zurückgegeben
- 4 ist nicht in einer so zurückgegeben wird. Wieder gleichen Fall von unterschiedlicher Art wie "1"
.
ich hoffe, dass es jetzt klarer ist.
es ist nicht, dass zurückgibt. http://jsbin.com/yecanun/1/edit?js,console – Quentin
bitte das gewünschte Ergebnis hinzufügen. –
Was sind Sie erwarten, dass die Funktion zurückkehrt und was gibt es eigentlich zurück? – Aron