9
votes

Comment scinder et attribuer 2 mots?

J'ai une phrase avec deux mots: xxx

et je veux diviser et assigner comme dans: xxx

est-il plus facile manière que ces trois lignes?

[mises à jour]

Je cherche à la sorte de le faire dans une seule ligne, Comme: xxx

est-il possible?


1 commentaires

J'ai mis à jour ma réponse pour répondre à votre dernière question.


6 Réponses :


2
votes

Je ne suis pas un expert JavaScript mais je regarde votre code, je dirais que vous pourriez le rendre plus efficace.

Les appels de code divisés deux fois, ce qui signifie que la chaîne d'origine doit être analysée deux fois. Tandis que cela pourrait ne pas être une grosse affaire, ce type de programmation s'ajoute.

Il serait donc généralement plus efficace de faire du code comme celui-ci: xxx


0 commentaires

2
votes

La seule suggestion que je fais est que vous mettez en cache le résultat de la scission, plutôt que de la recalculer.

var phrase = "hello world";
var splitPhrase = phrase.split(" ");
var word1 = splitPhrase[0];
var word2 = splitPhrase[1];


0 commentaires

3
votes
var words = "hello world".split(" ");
var word1 = words[0];
var word2 = words[1];
Is just as long, but much more readable. To answer your question, I think the above is easy enough without getting into regex.UpdateJavaScript unfortunately does not have parallel assignment functionality like Ruby. That is,var word1, word2 = phrase.split(" "); will not set word1 and word2 to words[0] and words[1] respectively. Instead it would set both word1 and word2 to the returned array ["hello", "world"].Now you could use the returned array instead of explicitly setting the results into variables and access them by index. This is especially useful to avoid creating a large number of variables when the string is quite long.

0 commentaires

1
votes

Je ne sais pas que vous pouvez le faire dans "moins de lignes", mais vous n'avez certainement pas besoin de faire la scission deux fois.

 var words = "hello world".split(" "),
     word1 = words[0],
     word2 = words[1];


0 commentaires

18
votes

Si vous utilisez JavaScript 1.7 (pas seulement ECMAScript), vous pouvez utiliser MissionStructuration :

var [a, b] = "hello world".split(" ");


1 commentaires

MCStretch: Il est disponible dans n'importe quel exécution qui implémente JavaScript 1.7. Je l'ai testé dans Rhino.



2
votes

en retard à la fête, mais voici une construction de 1 ligne que j'ai utilisée xxx


2 commentaires

Cela ne fait pas une doublure en supprimant simplement les nouvelles lignes. :-P


Vrai, mais j'allais pour un style "Mutivalue retour" en JavaScript et c'est aussi proche que je l'ai eu. Je l'ai lu comme, [Word1, Word2] = phrase.split () . Voir, une ligne. ;-)