字符串转换为数组的4 个方法

本文介绍了将字符串转换为字符数组的四种方法:1) 使用split()方法,但不处理双字节字符;2) 扩展运算符(...),能正确处理包括表情在内的字符;3) 解构赋值,利用剩余模式转换;4) 使用Array.from()方法,同样能正确转换。这四种方法各有优劣,适用于不同场景。
摘要由CSDN通过智能技术生成

大家好,我是漫步,分享几个简单地将字符串转为数组的方法。

英文 | https://javascript.plainenglish.io/4-ways-of-transforming-a-string-into-an-array-of-characters-8649e3abfd8d 

翻译 | 杨小二

在某些情况下,我们希望将字符串转换为字符数组。通常,我们要进行这种转换以使用强大的数组方法。

以下是可以完成此任务的 4 种方法。

1、split() 方法

常见的转换技术是split字符串方法,但这也是有问题的一种。

通过使用空字符串作为split方法的分隔符,我们可以将字符串转换为字符数组。

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

2、展开运算符

展开运算符 ( ...) 允许在需要多个元素(如数组文字)的地方扩展诸如字符串之类的可迭代对象。

这是将字符串扩展为字符数组的示例。正确处理采用两个代码单元的字符。

const text = "abc????";
const chars = [ ...text ];
console.log(chars);
//["a", "b", "c", "????"]

3、解构赋值

解构赋值语法可以将数组或可迭代对象中的值解包为不同的变量。

在解构数组或可迭代对象时,我们可以使用 rest 模式将其剩余部分提取到单个变量中。

const text = "abc????";
const [ ...chars ] = text;
console.log(chars);
//["a", "b", "c", "????"]

4、Array.from

Array.from辅助创建从阵列状或迭代的对象的新数组。字符串既可迭代又类似于数组,因此,可以成功地将其转换为字符数组。

const text = "abc????";
const chars = Array.from(text);
console.log(chars);
//["a", "b", "c", "????"]

重点说明

该split方法可能是将字符串转换为字符数组的常用方法,但它不处理采用两个代码单元的字符。

我们可以使用对象字面量中的扩展运算符、使用数组解构赋值语法中的剩余模式或Array.from实用程序将字符串正确转换为字符数组。

感谢你的阅读,希望对你有用。

推荐阅读

重磅!超详细的 JS 数组方法整理出来了

关注下方「前端开发博客」,回复 “加群”

加入我们一起学习,天天进步

如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~

有几种方法可以将JavaScript字符串转换数组。一种常用的方法是使用split() 方法。split() 方法用于将字符串拆分为字符串数组,可以通过传递分隔符作为参数来指定拆分的规则。例如,使用split() 方法字符串拆分为单个字符的数组,可以按照以下步骤进行操作: 1. 使用split() 方法并传递一个空字符串作为分隔符,这将会将字符串拆分为单个字符的数组。 示例代码: ```javascript const string = 'uixdk'; const array = string.split(''); ``` 这将会返回一个由每个字符作为元素的数组,即`["u", "i", "x", "d", "k"]`。` 将字符串转换数组。 示例代码: ```javascript const string = 'uixdk'; const array = [...string]; ``` 这将会返回与使用split() 方法相同的结果,即`["u", "i", "x", "d", "k"]`。 ,Array.from() 方法以及Object.assign() 方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [js怎么将字符串数组?](https://blog.csdn.net/csdssdn/article/details/124074178)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [js中,字符串数组(一)——字符串数组方法](https://blog.csdn.net/weixin_44867717/article/details/125633379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值