最近,我算是和数组杠上了,今天来说说数组和字符串之间的相互转换。
你知道的都有哪些方法呢?
下面说一说比较常见的几种,嘿嘿(不常见的我也不一定知道啊)。
一、数组转字符串
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先把空格去掉。
总之,数组和字符串之前转换的方法有很多,根据个人习惯来即可。
如果有更好的方法,也请各位不吝赐教,咱们共同进步呀!