你如何获得一个string在JavaScript中的字符数组?
你如何获得一个string在JavaScript中的字符数组?
我在想像一个像"Hello world!"的string 到数组['H','e','l','l','o',' ','w','o','r','l','d','!'] 
 > "Hello world!".split('') ["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"] 
只需用空string分割即可。
 请参阅String.prototype.split() MDN文档 。 
由于这个问题最初是在五年多前提出的,所以人们仍然在误解这种types的任务。 正如嬉皮士build议的那样 , 我的答案可以打破代理对,曲解“人物”。例如:
 // DO NOT USE THIS! > '𝟘𝟙𝟚𝟛'.split('') [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ] 
我build议使用以下ES2015function之一来正确处理这些字符序列。
扩展运算符( 已经由insertusername 在这里回答 )
 > [...'𝟘𝟙𝟚𝟛'] [ '𝟘', '𝟙', '𝟚', '𝟛' ] 
Array.from
 > Array.from('𝟘𝟙𝟚𝟛') [ '𝟘', '𝟙', '𝟚', '𝟛' ] 
  RegExp u标志 
 > '𝟘𝟙𝟚𝟛'.split(/(?=.)/u) [ '𝟘', '𝟙', '𝟚', '𝟛' ] 
如果你还在ES5.1时代,你可以使用这个替代方法(由Babel转译):
 > '𝟘𝟙𝟚𝟛'.split(/(?=(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))/) [ '𝟘', '𝟙', '𝟚', '𝟛' ] 
  spread操纵者 
您可以使用ECMAScript 2015(ES6)标准中引入的扩展运算符 ,即数组初始化程序:
 var arr = [...str]; 
例子
 function a() { return arguments; } var str = 'Hello World'; var arr1 = [...str], arr2 = [...'Hello World'], arr3 = new Array(...str); console.log( arr1, arr2, arr3, a(...str) ); 
 所有示例都包含["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] 
浏览器支持
检查ECMAScript ES6兼容性表 。
进一步阅读
- MDN:传播运营商
- ECMAScript 2015(ES6):12.2.5数组初始化器
  spread operator也被称为“ splat -operator ”(例如在PHP或Ruby中,或作为“ scatter operator ”(例如在Python中 )。 
演示
尝试购买之前
它已经是:
 var mystring = 'foobar'; console.log(mystring[0]); // Outputs 'f' console.log(mystring[3]); // Outputs 'b' 
或者对于更旧的浏览器友好版本,请使用:
 console.log(mystring.charAt(3)); // Outputs 'b' 
 你也可以使用Array.from 。 
 var m = "Hello world!"; console.log(Array.from(m)) 
这是一个老问题,但我遇到了另一个尚未列出的解决scheme。
您可以使用Object.assign函数来获得所需的输出:
 Object.assign([], "Hello, world!") [ 'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!' ] 
不一定是对或错,只是另一种select。
Object.assign在MDN网站上有很好的描述。
不使用任何function:
 function key(e) { if (e.keyCode === 13) { var st = document.getElementById('txt').value; var char = []; for (var i = 0; i < st.length; i++) { char.push(st[i]); } document.getElementById('chr').innerHTML = char; } } 
 <input type="text" id="txt" onkeypress="key(event)"></input> <p>Click Enter for char array:</p> <p id="chr"></p> 
你不需要做任何事情。 它已经是char的数组了。