2016-04-15 13 views
0

Bearbeiten ** Nachdem ich einige Antworten gelesen habe, suche ich keine einzelnen Zeichen/Code/Sonderzeichen bei der ursprünglichen Erstellung des Worts Array.Javascript Ein Array während der Erstellung bereinigen

Mit dem Code von THIS LINK und es von der Konsole laufen, während auf jeder Website, erhalten wir ein Array mit Tausenden von Wörtern, die bereits in der gewünschten Reihenfolge sortiert wurden und es heißt "Wörter".

Ich will die Top 25 greifen, die ich tun kann, mit:

cleanArray = words.slice(0, 25); 
console.log(cleanArray); 

I durch die Worte Array iterieren möchte, jedes Element zu entfernen, die nur ein einzelnes Zeichen in der Länge ist, oder enthält keine besondere Zeichen/Codetags usw.

Nicht sicher, ob es besser ist, nachdem das Wörterarray erstellt wurde oder während das Wörterarray erstellt wurde.

+0

Das hängt davon ab, wie das Array aufgebaut ist. Können Sie zeigen, wie das gemacht wird? – forgivenson

+0

Es hängt auch davon ab, ob du am Ende genau 25 Wörter brauchst, oder ob es in Ordnung ist, wenn du 25 schnappst und dann herausfindest, dass 20 davon herausgefiltert werden müssen. Es ist nicht nur eine Frage von "besser". – Jon

+1

Benötigen Sie genau 25 im Array, wenn Sie mit dem Filtern fertig sind? Was, wenn die ersten 10 "Wörter" rausgeworfen werden, ist das okay? Wenn es ersteres ist, würde ich vorschlagen, einfach durch das 'words'-Array zu iterieren und akzeptable Wörter zu Ihrem' cleanArray' hinzuzufügen, wenn Sie loslegen, dann brechen Sie aus der Schleife aus, wenn Sie genug von ihnen gesammelt haben. –

Antwort

1

Je nachdem, wie das Array erstellt wird, wäre es besser, sie einfach nie an erster Stelle hinzuzufügen, da sie später entfernt werden müssen, wodurch zwei Aktionen verschwendet werden.
Es gibt jedoch viele Situationen, in denen das Überspringen von Einträgen während der Erstellung keine Option ist, z. B. die Zeichenfolge split.

Als Faustregel gilt: Nie mehr Arbeit als nötig, und wenn Sie sich nicht sicher sind, Benchmark.

+0

Danke, das macht Sinn, dass es besser wäre, zuerst zu tun . Wie würden Sie diese Dinge während der ersten Array-Erstellung mit dem angegebenen Code ausschließen? – ZiNG

+0

Ändern Sie diese Zeile: 'if (! Ignore [sWord]) {' in etwas wie 'if (! Ignore [sWord] && checkWordForValidity (sWord)) {' –

Verwandte Themen