javascript 数组转为字符串(JavaScript数组如何转换成字符串)(1)

一、toLocaleString()、toString()和valueOf()方法

在ECMAScript中,所有对象都具有toLocaleString()、toString()和valueOf()方法,数组也从Object类型继承这三个方法。

  1. valueOf():调用数组的valueOf()方法返回的还是数组。
  2. toString():调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。为了创建这个字符串会调用数组每一项的toString()方法。
  3. toLocaleString():调用数组的toLocaleString()方法也会创建一个数组值的以逗号分割的字符串,为了取得每一项的值,调用的是每一项的toLocaleString()方法。

var colors = ["red", "blue", "green"]; alert(colors.toString()); //red,blue,green alert(colors.toLocalString()); //red,blue,green alert(colors.valueOf()); //red,blue,green alert(colors); //red,blue,green

由于alert()要接受字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。

var person1 = { toLocaleString: function(){ return "Nikolaos"; }, toString: function(){ return "Nicholas"; } }; var person2 = { toLocaleString: function(){ return "Grigorios"; }, toString: function(){ return "Greg"; } }; var people = [people1, people2]; alert(people); //Nicholas,Greg alert(people.toString()); //Nicholas,Greg alert(people.toLocaleString()); //Nikolaos,Grigorios

二、join()方法

使用数组的toLocaleString()、toString()方法,在默认情况下会以逗号分隔的字符串的形式返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。

var colors = ["red", "blue", "green"]; alert(colors.join("||")); //red||blue||green

如果数组中的某一项的值是null或者undefined,那么该值在join()、toLocaleString()、toString()方法返回的结果中以空字符串表示。

,