Split string into array

JavascriptArraysStringSplit

Javascript Problem Overview


In JS if you would like to split user entry into an array what is the best way of going about it?

For example:

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

Perhaps I'm going about this the wrong way - would appreciate any help!

Javascript Solutions


Solution 1 - Javascript

Use the .split() method. When specifying an empty string as the separator, the split() method will return an array with one element per character.

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

Solution 2 - Javascript

ES6 :

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

Solution 3 - Javascript

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

Solution 4 - Javascript

Do you care for non-English names? If so, all of the presented solutions (.split(''), [...str], Array.from(str), etc.) may give bad results, depending on language:

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

Consider using the grapheme-splitter library for a clean standards-based split: https://github.com/orling/grapheme-splitter

Solution 5 - Javascript

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"]

Solution 6 - Javascript

Use split method:

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

Refer String.prototype.split() for more info.

Solution 7 - Javascript

You can try this:

var entryArray = Array.prototype.slice.call(entry)

Solution 8 - Javascript

...and also for those who like literature in CS.

array = Array.from(entry);

Solution 9 - Javascript

ES6 is quite powerful in iterating through objects (strings, Array, Map, Set). Let's use a Spread Operator to solve this.

entry = prompt("Enter your name");
var count = [...entry];
console.log(count);

Solution 10 - Javascript

You can try this way:

let entry = prompt("Enter your name") 
let entryArray = entry.split('')
console.log(entryArray)

here is fiddle https://jsfiddle.net/swapanil/Lp1arvqc/17/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmethuselahView Question on Stackoverflow
Solution 1 - JavascriptJames HillView Answer on Stackoverflow
Solution 2 - JavascriptAbdennour TOUMIView Answer on Stackoverflow
Solution 3 - JavascriptJordan WallworkView Answer on Stackoverflow
Solution 4 - JavascriptOrlin GeorgievView Answer on Stackoverflow
Solution 5 - Javascriptаlex dykyіView Answer on Stackoverflow
Solution 6 - JavascriptLukmanView Answer on Stackoverflow
Solution 7 - JavascriptMicView Answer on Stackoverflow
Solution 8 - JavascriptReduView Answer on Stackoverflow
Solution 9 - JavascriptJideLamboView Answer on Stackoverflow
Solution 10 - Javascriptuser10254257View Answer on Stackoverflow