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

  • Post author:
  • Post category:其他


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

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

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

一、数组转字符串


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先把空格去掉。

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

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



版权声明:本文为weixin_38629529原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。