56 votes

Divise la chaîne de caractères en tableau

En JS, si vous souhaitez diviser l'entrée d'un utilisateur dans un tableau, quelle est la meilleure façon de procéder ?

Par exemple :

entry = prompt("Enter your name")

for (i=0; i<entry.length; i++)
{
entryArray[i] = entry.charAt([i]);
}

// entryArray=['j', 'e', 'a', 'n', 's', 'y'] after loop

Peut-être que je m'y prends de la mauvaise façon - j'apprécierais toute aide !

92voto

James Hill Points 27532

Utilisez le .split() méthode. Lorsque vous spécifiez une chaîne vide comme séparateur, la méthode split() retournera un tableau avec un élément par caractère.

entry = prompt("Enter your name")
entryArray = entry.split("");

17voto

ES6 :

const array = [...entry]; // entry="i am" => array=["i"," ","a","m"]

12voto

Jordan Wallwork Points 1209

Utiliser var array = entry.split("");

10voto

Orlin Georgiev Points 24

Les noms non-anglais vous intéressent-ils ? Si oui, toutes les solutions présentées (.split(''), [...str], Array.from(str), etc.) peuvent donner de mauvais résultats, selon la langue :

"प्रणव मुखर्जी".split("") // the current president of India, Pranab Mukherjee
// returns ["प", "्", "र", "ण", "व", " ", "म", "ु", "ख", "र", "्", "ज", "ी"]
// but should return ["प्", "र", "ण", "व", " ", "मु", "ख", "र्", "जी"]

Pensez à utiliser la bibliothèque grapheme-splitter pour un fractionnement propre basé sur les normes : https://github.com/orling/grapheme-splitter

5voto

аlex dykyі Points 2460
var foo = 'somestring'; 

// bad example https://stackoverflow.com/questions/6484670/how-do-i-split-a-string-into-an-array-of-characters/38901550#38901550

var arr = foo.split(''); 
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]

// good example
var arr = Array.from(foo);
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]

// best
var arr = [...foo]
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X