【JS】数组和字符串之间的转换

最近,我算是和数组杠上了,今天来说说数组和字符串之间的相互转换。

你知道的都有哪些方法呢?

下面说一说比较常见的几种,嘿嘿(不常见的我也不一定知道啊)。

一、数组转字符串

1、toString()

返回一个字符串,表示指定的数组及其元素

举个栗子,看下效果:

const arr = [1,2,3,4];
arr.toString();  // "1,2,3,4"

现在确实是个字符串了,但问题又来了,有什么办法可以把中间的逗号去掉吗?

简单点,直接使用replace或者replaceAll(字符串的方法)。

const arr = [1,2,3,4];
const str = arr.toString();  // "1,2,3,4"

// 方法一  使用replace
str.replace(/,/g, ''); // "1234"

// 方法二  使用replaceAll
// 将所有的逗号替换成空字符串
str.replaceAll(',', ''); // "1234"

当然,也可以使用数组的join(没转成字符串之前)方法(似乎更简单?哈哈哈,大意了),下面也会讲到,先不着急。

2、toLocalString()

 返回一个字符串表示数组中的元素

是不是和toString()长得很像?其实,它俩的用法也差不多,差异点主要在于两点:

  • 如果是数字,toLocalString能将其转为千分符
  • 如果是日期,可转成本地的日期格式

如果有不明白的朋友,可移步tostring和toLocalString的区别,这里就不再重复了。

3、join()

将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串

语法:arr.join([separator])

  • separator 可选,指定一个字符串来分隔数组的每个元素。(如果不指定,默认是逗号分隔)
let arr = [1,2,3,4];
arr.join();  // "1,2,3,4"

如果不想要字符串中间的逗号,或者想要其他符号分隔,传参进去就好了,比如:

let arr = [1,2,3,4];

// 默认以逗号分隔
arr.join(); // "1,2,3,4"

// 以空字符串分隔
arr.join(''); // "1234"

// 以-分隔
arr.join('-'); // "1-2-3-4"

数组转字符串的差不多了,接下来看看字符串转数组的吧!

二、字符串转数组

1、split()

使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置

语法:str.split([separator[, limit]])

  • separator  可选,指定表示每个拆分应发生的点的字符串
  • limit  可选,一个整数,限定返回的分割片段数量
let str = "hello world";

// 如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素
str.split();  // ["hello world"]

// 以空字符串分隔
str.split('');  // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]

// 以空格作为分隔符
str.split(' '); // ["hello", "world"]

2、Array.from()

从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例 

let str = "hello world";

Array.from(str); // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]

效果和split使用空字符串的方法是一样的。如果不想要中间的空格,也可以使用replace或者replaceAll先把空格去掉。

总之,数组和字符串之前转换的方法有很多,根据个人习惯来即可。

如果有更好的方法,也请各位不吝赐教,咱们共同进步呀! 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值