2015-12-30 8 views
5

Neugierig, wenn es einen Vorteil gibt, einen dieser Ansätze gegenüber dem anderen zu wählen. Hier ist eine Illustration.str.split ('') .map() vs arr.map(), für feste Eingabe

'one two'.split(' ').map(string => doSomething(string)); 

vs

['one', 'two'].map(string => doSomething(string)); 

Ich habe den ersten Ansatz in einigen populären Front-End-Bibliotheken gesehen, aber die zweiten macht mir mehr Sinn, wenn schnell durch den Code zu lesen. Ist das nur eine Stilwahl? Oder gibt es einen obskuren Vorteil für das Aufspalten einer auseinander gezogenen Zeichenkette im Gegensatz zu einer Abbildung durch ein Array?

+1

@ user2864740 Wirklich? – epascarello

+0

Möchten Sie den zusätzlichen Verarbeitungsschritt haben? – epascarello

+2

@ user2864740, Nein ist es nicht. 'one two'.split ('')' produziert '[' one ',' two '] ' –

Antwort

-1

['one', 'two'] ist das Ergebnis 'one two'.split(' '), also kein Unterschied.

String.prototype.split():

Die split() Verfahren teilt ein String-Objekt in ein Array von Zeichenketten durch die Zeichenkette in Teilzeichen trennt.

+0

Es ist erwähnenswert, dass der Grund, warum Sie einen gegen den anderen verwenden, vom Typ Ihrer Variablen abhängt; ob Sie bereits eine Zeichenfolge oder ein Array haben. – gfullam

+0

Ich bin mir bewusst, dass sie die gleichen Dinge erreichen, war aber neugierig, ob es einen obskuren Vorteil bei der Wahl eines Ansatzes gegenüber dem anderen gab :) –

+0

Es hängt vom Typ Ihrer Variablen ab. Es gibt keine Strategie, nur eine Notwendigkeit. – gfullam

-1

Der einzige Unterschied ist die Lesbarkeit (und für einige Leute könnte es auch einfacher zu schreiben sein).

Einige Leute betrachten 'one two'.split(' ') lesbarer als die JavaScript-Notation des Arrays.

Wenn Sie jedoch an JSON gewöhnt sind, werden Sie die zweite besser lesen, da klarer ist, was passieren wird. (Und es ist ein Tick schneller!)

Andere Sprachen haben sogar das direkt in die Sprache gebaut. In Ruby zum Beispiel könnten Sie schreiben %w(one two) ein Array mit den Strings "eins" und "zwei" produzieren.

+1

Es gibt keine Möglichkeit, dass "one two" .split ("") "lesbarer ist als" ["one", "two"] ', was direkter und kürzer ist. –

+1

@Derek 功夫 會 功夫 Ist das eine Meinung oder widersetzen Sie sich meiner Antwort? (Forschung '% w()' für Ruby ...) – idmean

+0

Nur eine Meinung darüber, wie dies möglicherweise nicht der Grund dafür, warum dies über das Array Literal in den genannten Bibliotheken OP gewählt wird, besonders wenn Bibliotheken oft über Leistung sind. –

Verwandte Themen