Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist der Unterschied zwischen Suchen und Filtern in es6?
Der Unterschied zwischen Suchen und Filtern in es6: 1. Bei der Suche nach Inhalten, die die Bedingungen im Array erfüllen, ohne das Array zu ändern, ist das von der Suchmethode zurückgegebene Ergebnis ein Objekt und das von der Filtermethode zurückgegebene Ergebnis ein Array; 2. Wenn kein Wert die Testfunktion erfüllt, gibt die Suchmethode undefiniert zurück und die Filtermethode gibt ein leeres Array zurück.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, ECMAScript Version 6.0, Dell G3-Computer.
1 Sowohl find als auch filter ändern das ursprüngliche Array. Sie suchen beide nach qualifizierten Inhalten im Array. Der Unterschied besteht darin, dass find zurückgegeben wird ein Objekt. Filter gibt ein Array zurück.
Das Beispiel sieht wie folgt aus:
const list = [{'name':'1',index:1},{'name':'2'},{'name':'1'}] let list2 = list.find(i=>i.name==='1') let list3 = list.filter(i=>i.name==='1') console.log(list); [ { name: '1', index: 1 }, { name: '2' }, { name: '1' } ] console.log(list2); { name: '1', index: 1 } console.log(list3);[ { name: '1', index: 1 }, { name: '1' } ]
find findet nur das erste Ergebnis, das die Bedingungen erfüllt. Im Beispiel wird direkt ein Objekt anstelle eines Arrays zurückgegeben! , und der Filter gibt alle Ergebnisse weiterhin als Arrays zurück.
Hinweis: Nachdem find() das erste Element gefunden hat, werden die folgenden Elemente nicht durchlaufen. Wenn also zwei identische Elemente im Array vorhanden sind, wird nur das erste gefunden und das zweite nicht erneut durchlaufen. .
2. Zusammenfassend lässt sich sagen, dass die Effizienz der Suchabfrage höher ist. Wenn die Daten im Array also eindeutig sind, ist es am besten, die Methode find
find() zu verwenden Testfunktion Der Wert des Elements. Wenn kein Wert die Testfunktion erfüllt, wird undefiniert zurückgegeben.
SyntaxPfeilfunktionen, die in der folgenden Syntax verwendet werden. Die Methodefind((element) => { /* ... */ } ) find((element, index) => { /* ... */ } ) find((element, index, array) => { /* ... */ } )
filter()
filter() erstellt ein neues Array mit allen Elementen, die die Testfunktion bestehen. Wenn kein Element die Testfunktion erfüllt, wird ein leeres Array zurückgegeben.
Grammatikfilter((element) => { /* ... */ } ) filter((element, index) => { /* ... */ } ) filter((element, index, array) => { /* ... */ } )Gemeinsamkeiten
Funktionen höherer Ordnung: Beide Funktionen sind Funktionen höherer Ordnung.
Unterschiede
1. Geben Sie das erste Element über eine Testfunktion zurück
find(). filter() gibt ein neues Array zurück, das alle Elemente enthält, die die Testfunktion bestanden haben. 2. Wenn kein Wert die Testfunktion erfüllt, gibt filter() ein leeres Array zurück. [Verwandte Empfehlungen:Javascript-Video-Tutorial
]Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Suchen und Filtern in es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!