1、数组和字符串的转换

JavaScript 允许数组与字符串之间可以相互转换。其中 Array 对象定义了 3 个方法,以实现把数组转换为字符串:

数组方法

说明

toString()

将数组转换成字符串

toLocalString()

把数组转换成局部字符串

join()

将数组元素连接起来以构建一个字符串

1.1、toString() 方法

toString() 方法是 Object 对象定义的,因此在 JavaScript 中所有对象都继承了这个方法,数组对象也不例外。在数组中 toString() 方法能够把每个元素转换为字符串,然后以逗号连接输出显示。

var a = [1,2,3,4,5,6,7,8,9,0];    //定义数组
var s = a.tostring();    //把数组转换为字符串
alert(s);    //返回字符串"1,2,3,4,5,6,7,8,9,0"
alert(typeof s);    //返回字符串string,说明是字符串类型

当数组用于字符串环境中时,JavaScript 会自动调用 toString() 方法将数组转换成字符串。在某些情况下,需要明确调用这个方法。

var a = [1,2,3,4,5,6,7,8,9,0];//定义数组
var b = [1,2,3,4,5,6,7,8,9,0];//定义数组
var s = a + b;    //数组连接操作
alert(s);    //返回字符串 "1,2,3,4,5,6,7,8,9,01,2,3,4,5,6,7,8,9,0"
alert(typeof s);    //返回字符串string,说明是字符串类型

toString() 在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串,当每个元素都被转换成字符串时,才使用逗号进行分隔,以列表的形式输出这些字符串。

var a = [[1,[2,3],[4,5],[6,[7,[8,9],0]]];    //定义多维数组
var s = a.toString();    //把数组转换为字符串
alert(s);    //返回字符串"1,2,3,4,5,6,7,8,9,0"

其中数组 a 是一个多维数组,JavaScript 会以迭代方式调用 toString() 方法把所有数组都转换为字符串。

1.2、toLocalString() 方法

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

var a = [1,2,3,4,5];    //定义数组
var s = a.toLocalString();    //把数组转换为本地字符
alert(9);    //返回字符串"1.00,2.00,3.00,4.00,5.00"

在上面示例中,toLocalString() 方法根据中国大陆的使用习惯,先把数字转换为浮点数之后执行字符串转换操作。

1.3、join() 方法

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

var a = [1,2,3,4,5];    //定义数组
var s = a.join("a");    //指定分隔符
alert(s);    //返回字符串"1==2==3==4==5"

还可以用 split() 方法把字符串转换为数组,split() 方法是 String 对象方法,与 join() 方法操作正好相反。该方法可以指定两个参数,第一个参数为分隔符,指定从哪里进行分割,第二个参数指定要返回数组的长度。

var s = "1==2== 3==4 ==5"; //定义字符串
var a = s.split("==");     //分隔字符串为数组
alert(a);    //返回数组[1,2,3,4,5]
alert(a.constructor == Array);    //返回true,说明是数组