在JS中,如果您想将用户条目拆分为数组,那么最好的方法是什么?
例如:
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
也许我会以错误的方式解决这个问题 - 希望得到任何帮助!
答案 0 :(得分:59)
使用.split()
方法。将空字符串指定为分隔符时,split()
方法将返回一个每个字符包含一个元素的数组。
entry = prompt("Enter your name")
entryArray = entry.split("");
答案 1 :(得分:7)
const array = [...entry]; // entry="i am" => array=["i"," ","a","m"]
答案 2 :(得分:6)
使用var array = entry.split("");
答案 3 :(得分:4)
你关心非英文名字吗?如果是这样,所有提出的解决方案(.split(''),[... str],Array.from(str)等)可能会产生不良结果,具体取决于语言:
"प्रणव मुखर्जी".split("") // the current president of India, Pranab Mukherjee
// returns ["प", "्", "र", "ण", "व", " ", "म", "ु", "ख", "र", "्", "ज", "ी"]
// but should return ["प्", "र", "ण", "व", " ", "मु", "ख", "र्", "जी"]
考虑使用字形分割器库进行基于标准的清洁分割: https://github.com/orling/grapheme-splitter
答案 4 :(得分:2)
你可以试试这个:
var entryArray = Array.prototype.slice.call(entry)
答案 5 :(得分:2)
......还有那些喜欢CS文学的人。
array = Array.from(entry);
答案 6 :(得分:1)
使用split
方法:
entry = prompt("Enter your name");
entryArray = entry.split("");
有关详细信息,请参阅String.prototype.split()
。
答案 7 :(得分:1)
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"]
答案 8 :(得分:1)
ES6在迭代对象(字符串,数组,映射,集合)方面非常强大。 让我们使用Spread运算符来解决这个问题。
entry = prompt("Enter your name");
var count = [...entry];
console.log(count);
答案 9 :(得分:0)
您可以尝试这种方式:
let entry = prompt("Enter your name")
let entryArray = entry.split('')
console.log(entryArray)