2017-10-04 3 views
1

Der Grund, warum dieses Problem auftrat, war zu überprüfen, ob ein Wort doppelte Buchstaben enthielt. Der Ansatz, den ich wollte, war:Wenn Sie ein neues Set in Javascript erstellen, iterieren Sie?

var word = "will" 
var x = new Set(word) 

if(x.size == word.length){ 
    console.log("no duplicates") 
}else{ 
    console.log("duplicates") 
} 

Ich weiß, wenn Sie ein Set erstellen, kann der Wert nur einmal auftreten. Versuchen Sie festzustellen, ob dies ein effizienter Ansatz war Ich bin mir nicht sicher, ob wenn Sie ein Set erstellen, wenn es iteriert oder es eine Art Hash-Tabelle verwendet.

+0

Set-Objekte Sammlungen von ECMAScript-Sprach Werte sind. Ein bestimmter Wert kann nur einmal als Element der Auflistung eines Sets auftreten. Eindeutige Werte werden mit dem Vergleichsalgorithmus [SameValueZero] (https://tc39.github.io/ecma262/#sec- valuezero) unterschieden. [Quelle] (https://tc39.github.io/ecma262/#sec-set-objects) –

+0

Was wollen Sie ?. Da das oben genannte nicht auf doppelte Buchstaben prüfen wird, "effiziente Annäherung" wenn richtig benutzt, ja. – Keith

+0

Fragen Sie nur, ob "Wort" in einem Set bewirkt, dass "Wort" iteriert wird? – Carcigenicate

Antwort

1

Wenn Sie sich Sorgen um die Leistung machen, würde ich empfehlen, jsPerf zu verwenden und andere Möglichkeiten zu vergleichen, an die Sie vielleicht schon gedacht haben.

Versuchen Sie, Ihr spezifisches Szenario zu verwenden, da es von der Engine, auf der der Code ausgeführt wird, und vom tatsächlichen ausgeführten Szenario abhängen kann.

nehmen dies als Beispiel https://jsperf.com/dedupe-a-list

+0

ja das scheint meine Frage zu beantworten. Ich war mir nicht sicher, ob es für mich einfacher gewesen wäre, eine Filtermethode zu erstellen. Ich bin neugierig, was der effizienteste Ansatz gewesen wäre. Vielen Dank – user8720880

Verwandte Themen