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 loopPerhaps I'm going about this the wrong way - would appreciate any help!
010 Answers
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(""); 1 ES6 :
const array = [...entry]; // entry="i am" => array=["i"," ","a","m"] use var array = entry.split("");
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:
var foo = 'somestring'; // bad example
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"] You can try this:
var entryArray = Array.prototype.slice.call(entry)
...and also for those who like literature in CS.
array = Array.from(entry); Use split method:
entry = prompt("Enter your name");
entryArray = entry.split("");Refer String.prototype.split() for more info.
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); You can try this way:
let entry = prompt("Enter your name")
let entryArray = entry.split('')
console.log(entryArray)here is fiddle