const text = "abc";const chars = text.split('');console.log(chars);//['a', 'b', 'c']
该split方法无法正确处理采用两个代码单元(如表情符号)的字符。下面是一个例子。
const text = "abc😎";const chars = text.split('');console.log(chars);//["a", "b", "c", "\ud83d", "\ude0e"]
展开运算符 ( ...) 允许在需要多个元素(如数组文字)的地方扩展诸如字符串之类的可迭代对象。
这是将字符串扩展为字符数组的示例。正确处理采用两个代码单元的字符。
const text = "abc😎";const chars = [ ...text ];console.log(chars);//["a", "b", "c", "😎"]
解构赋值语法可以将数组或可迭代对象中的值解包为不同的变量。
在解构数组或可迭代对象时,我们可以使用 rest 模式将其剩余部分提取到单个变量中。
const text = "abc😎";const [ ...chars ] = text;console.log(chars);//["a", "b", "c", "😎"]
Array.from辅助创建从阵列状或迭代的对象的新数组。字符串既可迭代又类似于数组,因此,可以成功地将其转换为字符数组。
const text = "abc😎";const chars = Array.from(text);console.log(chars);//["a", "b", "c", "😎"]
重点说明
该split方法可能是将字符串转换为字符数组的常用方法,但它不处理采用两个代码单元的字符。
我们可以使用对象字面量中的扩展运算符、使用数组解构赋值语法中的剩余模式或Array.from实用程序将字符串正确转换为字符数组。
感谢你的阅读,希望对你有用。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/38790.html