Mit der Array-Deduplizierung wird man häufig bei Vorstellungsgesprächen konfrontiert und in der Regel müssen Sie den Code für die Array-Deduplizierungsmethode handschriftlich verfassen. Wenn Sie gefragt werden: „Welche Methoden gibt es zum Deduplizieren von Arrays?“ Wenn Sie 10 davon beantworten können, wird der Interviewer wahrscheinlich von Ihnen beeindruckt sein. 1. Objekteigenschaften verwenden Nutzen Sie die Funktion eindeutiger Attributnamen von Objekten. var arr = ['qiang','ming','tao','li','liang','du','qiang','tao']; Konsole.Zeit("nichtredundant1"); var nonredundant1 = Object.getOwnPropertyNames(arr.reduce(Funktion(Seed, Item, Index) { Samen[Element] = Index; Samen zurückgeben; },{})); console.timeEnd("nichtredundant1"); console.log(nichtredundant1); Die Ergebnisse sind wie folgt: 2. Verwenden der Set-Datenstruktur Ein Set ist eine Struktur ähnlich einem Array, allerdings gibt es in den Set-Mitgliedern keine doppelten Werte. Die Funktion set() kann einen Array- oder arrayähnlichen Parameter akzeptieren, um ein Set-Objekt zu generieren. Mit der Methode Array.from werden zwei Objekttypen in echte Arrays umgewandelt: arrayähnliche Objekte (array-like objects und iterable objects), einschließlich der von ES6 hinzugefügten Datenstrukturen Set und Map. var arr = ['qiang','ming','tao','li','liang','du','qiang','tao']; Funktion einzigartig(arr) { gibt Array.from(neues Set(arr)) zurück } console.time("nichtredundant2"); var nichtredundant2 = eindeutig(arr); console.timeEnd("nichtredundant2"); console.log(nichtredundant2); Die Ergebnisse sind wie folgt: 3. Verwenden von for-Schleife und Splice Funktion einzigartig(arr) { für (var i = 0; i < arr.length; i++) { für (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { //Das erste ist gleich dem zweiten, die Splice-Methode löscht das zweite arr.splice(j, 1); J--; } } } Rückflug an; } console.time("nichtredundant3"); var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; var nichtredundant3 = einzigartig(arr); console.timeEnd("nichtredundant3"); console.log(nichtredundant3); Die Ergebnisse sind wie folgt: 4. Verwenden Sie indexOf, um die Entfernung von Duplikaten zu bestimmen Funktion einzigartig(arr) { var-Array = []; für (var i = 0; i < arr.length; i++) { wenn (Array.indexOf(arr[i]) === -1) { Array.push(arr[i]) } } Array zurückgeben; } var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; console.time("nichtredundant4"); var nichtredundant4 = einzigartig(arr); console.timeEnd("nichtredundant4"); console.log(nichtredundant4); Die Ergebnisse sind wie folgt: 5. Verwenden Sie die Sortierfunktion, um Duplikate zu sortieren und zu entfernen Funktion einzigartig(arr) { arr = arr.sort() var arrry = [arr[0]]; für (var i = 1; i < arr.length; i++) { wenn (arr[i] !== arr[i - 1]) { arrry.push(arr[i]); } } zurück arrry; } var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; Konsole.Zeit("nichtredundant5"); var nichtredundant5 = einzigartig(arr); console.timeEnd("nichtredundant5"); Die Ergebnisse sind wie folgt: 6. Verwenden Sie Filter Funktion einzigartig(arr) { var obj = {}; returniere arr.filter(Funktion(Element, Index, arr){ gibt obj.hasOwnProperty(Artikeltyp + Artikel) zurück? false : (Obj[Artikeltyp + Artikel] = true) }) } var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; Konsole.Zeit("nichtredundant6"); var nichtredundant6 = eindeutig (arr); console.timeEnd("nichtredundant6"); console.log(nichtredundant6); Die Ergebnisse sind wie folgt: 7. Verwenden Sie die Map-Datenstruktur, um Duplikate zu entfernen Funktion einzigartig(arr) { lass map = neue Map(); let array = new Array(); // Array wird verwendet, um Ergebnisse für (let i = 0; i < arr.length; i++) { zurückzugeben. if (map.has(arr[i])) { // Wenn ein Schlüsselwert vorhanden ist map.set(arr[i], true); } anders { map.set(arr[i], false); // Wenn es keinen solchen Schlüsselwert gibt array.push(arr[i]); } } Array zurückgeben; } var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; Konsole.Zeit("nichtredundant7"); var nichtredundant7 = einzigartig(arr); console.timeEnd("nichtredundant7"); console.log(nichtredundant7); Die Ergebnisse sind wie folgt: 8. Verwenden Sie „Reduce“ und „Include“, um Duplikate zu entfernen Funktion einzigartig(arr){ return arr.reduce((vorherige,aktuell) => vorherige.includes(aktuell) ? vorherige : [...vorherige,aktuell],[]); } var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'du', 'qiang', 'tao']; Konsole.Zeit("nichtredundant8"); var nichtredundant8 = einzigartig(arr); console.timeEnd("nichtredundant8"); console.log(nichtredundant8); Die Ergebnisse sind wie folgt: Damit ist dieser Artikel über den praktischen Quellcode der häufig verwendeten JavaScript-Array-Deduplizierung abgeschlossen. Weitere relevante Inhalte zur JS-Array-Deduplizierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der Verwendung und Vorsichtsmaßnahmen von Crontab unter Linux
>>: Tutorial zur Installation von MYSQL5.7 aus dem OEL7.6-Quellcode
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Primärschlüsseleinschränkung E...
Ich habe vor Kurzem angefangen, Linux zu lernen. ...
Bei Verwendung einer Oracle-Datenbank für Fuzzy-A...
Es ist sehr einfach, eine Go-Umgebung unter Linux...
Vorwort Im Linux-Kernel ist Netfilter ein Subsyst...
1. Die Rolle des Doctypes, der Unterschied zwisch...
Wenn Sie nginx als Reverse-Proxy verwenden, könne...
Nachdem ich das letzte Mal die Taobao-Detailseite ...
Nachdem Sie auf der Seite auf das a-Tag geklickt h...
1. Laden Sie das Installationspaket mysql-5.7.17-...
Dieser Artikel veranschaulicht anhand von Beispie...
<br />Dies ist ein Artikel, den ich vor lang...
Tomcat8-Image herunterladen [root@localhost ~]# D...
In Google Chrome werden Sie nach der erfolgreiche...