字符串与数组间的互相转换

3,364 阅读2分钟

数组转字符串

1、直接以字符串的方式进行拼接

js会以toString()方式将数组转为字符串,例如

var  a = ['a','b','c','d','e','f'];
var b = [1,2,2,3,4,5,6];
var c = a + b;
console.log(typeof(c));//string

所以直接拼接个空字符串就可以完成转换

var  a = ['a','b','c','d','e','f'];
var c = a + "";
console.log(typeof(c));//string

2、toString()

使用toString()方法

var  a = ['a','b','c','d','e','f'];
var b = a.toString();
console.log(typeof(b));//string

基本数据类型中除了null和undefined 都可以toString(),数字可以用其改变进制(要转变成的进制数),boolean输出的是ture或false。

toString() 在把数组转换成字符串时,首先要将数组的每个元素都转换为字符串。当每个元素都被转换为字符串时,才使用逗号进行分隔,以列表的形式输出这些字符串。其中数组 a 是一个多维数组,JavaScript 会以迭代的方式调用 toString() 方法把所有数组都转换为字符串。例如

var  a = ['a',['b','g'],'c','d','e','f'];
var b = a.toString();
console.log(typeof(b),b);//string a,b,g,c,d,e,f

3、toLocalString()

与toString()用法基本相同,主要区别在于 toLocalString() 方法能够使用用户所在地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

var  a = ['a',['b','g'],'c','d','e','f'];
var b = a.toLocalString() ;
console.log(typeof(b),b);//string a,b,g,c,d,e,f

4、join()

join() 方法可以把数组转换为字符串,不过它可以指定分隔符。在调用 join() 方法时,可以传递一个参数作为分隔符来连接每个元素。如果省略参数,默认使用逗号作为分隔符,这时与 toString() 方法转换操作效果相同。

var  a = ['a',['b','g'],'c','d','e','f'];
var b = a.join("-") ;
console.log(typeof(b),b);//string a-b,g-c-d-e-f

字符串转数组的方法

如果是单一字符串,可以用遍历赋值

var a = 'abcdefgh';
var arr = [];
for(var i = 0;i<a.length;i++){
    arr.push(a.charAt(i));
}
console.log(arr);//['a', 'b', 'c','d', 'e', 'f','g', 'h']

如果是有字符间隔的字符串用split()

split(),可以接受两个参数,第一个参数,分割符,第二个参数,截取的长度。

var a = 'a,b,c,d,e,f,g,h'
var arr = [];
arr = a.split(',');
console.log(arr);