Wie durchsucht man ein Array in Javascript? [Duplikat]

8

Ich suche, ob zwei Werte in einem Array gleich sind. Ich habe den folgenden Code geschrieben:

%Vor%

Ich bin neu in Javascript, also habe ich versucht, HashMap zu verwenden, um herauszufinden, ob es ein Duplikat gibt. Ist es der beste Weg, ein Duplikat in JavaScript zu finden? oder kann ich es optimieren?

    
sheidaei 04.10.2012, 17:18
quelle

4 Antworten

1

Ihre Funktion ist bereits sehr gut, abgesehen von dem Problem, dass es nur für Arrays mit Strings oder Zahlen funktioniert. Für eine schwierigere Herangehensweise, sich auch um Objekte zu kümmern, siehe diese Antwort . Ich glaube nicht, dass dies für Sie von Bedeutung ist, da Sie einen expliziten und eingeschränkten Anwendungsfall haben (Überprüfung der Identität durch die Eigenschaft value ).

Aber einige Punkte würde ich anders machen:

  • Verwenden Sie nicht die Variable success und break aus der Schleife, sondern nur return von der gesamten Funktion.
  • Anstelle des Konstruktors new Object wird normalerweise das Verknüpfungsobjekt literal {} verwendet
  • Anstatt die Werte in hashMap auf 1 zu setzen, könnte man true ; Sie könnten auch den Gleichheitsoperator == weglassen und einfach nach der Wahrheit der Eigenschaft suchen. Ich würde sogar den Operator in verwenden.
%Vor%     
Bergi 04.10.2012, 18:43
quelle
1

// Sie müssten es nur optimieren, wenn Sie es woanders verwenden möchten -

%Vor%     
kennebec 04.10.2012 17:58
quelle
0

Es könnte sich lohnen, die Implementierung dieser Funktion durch den Unterstrich zu überprüfen. Wenn du nur Duplikate eliminieren willst, kannst du _.uniq () verwenden, aber wenn du mehr daran interessiert bist, das zu wissen Sind Duples oder die reinen Implementierungsdetails, können Sie gerne die Quelle dieser Methode ausprobieren Das ist sehr schön dokumentiert.

Ich weiß, dass dies keine direkte Codeantwort auf die Frage ist - es gibt schon einige hier, also wäre es nicht sinnvoll, sie zu wiederholen. Aber ich dachte, es wäre erwähnenswert, da Unterstreichung eine großartige Utility-Bibliothek ist und die Quelle ein großartiger Ort ist, um mehr über gut geschriebenes Javascript zu lernen.

    
Jeff Escalante 04.10.2012 17:40
quelle
0

Es scheint, dass Sie die Duplikate nicht finden wollen, nur um zu sehen, ob es welche gibt?

Sie sind ziemlich nah, hier ist eine funktionierende Funktion;

%Vor%

Die Unterstriche im assoziativen Array sind notwendig, um numerische Werte zu speichern. Die hasDuplicates() -Funktion arbeitet nur Objekte, die eine toString() -Methode haben.

Nach Duplikaten suchen;

%Vor%     
Björn 04.10.2012 17:34
quelle

Tags und Links