Array类型-转换⽅法
转换⽅法
  如前所述,所有对象都具有toLocaleString()、toString()和valueOf()⽅法。调⽤数组的toString()⽅法返回由数组中每个值的字符串形式拼接⽽成的⼀个以逗号分隔符是字符串。⽽调⽤valueOf()返回的还是数组。实际上,为了创建这个字符串会调⽤数组每⼀项的toString()⽅法。来看下⾯这个例⼦:
var colors=["red","blue","green"];//创建⼀个包含3个字符串的数组
String());//red,blue,green
alert(colors.valueOf());//red.blue,green
alert(colors);//red.blue,green
  在这⾥,我们⾸先显式地调⽤了toString()和valueOf()⽅法,以便返回数组的字符串表⽰,每个值的字符串表⽰拼接成了⼀个字符串。中间⼀逗号分隔。最后⼀⾏代码直接将数组传递给了alert()。由于alert()要接收字符串参数,所以它会在后台调⽤toString()⽅法,由此会得到与直接调⽤toString()⽅法相同的结果。
  另外,toLocaleString()⽅法经常也会返回与toString()和valueOf()⽅法相同的值,但也不总是如此。当调⽤数组的toLocaleString()⽅法时,它会创建⼀个数组值的以逗号分隔的字符串。⽽与前两个⽅法唯⼀的不同之处在于,这⼀次为了取得每⼀项的值,调⽤的是每⼀项toLocaleString()⽅法,⽽不是toString()⽅法。请看下⾯这个例⼦:
var person1={
toLocaleString:function(){
return"Nikolaos";
},
toString:function(){
return"Nicholas";
}
};
var person2={
toLocaleString:function(){
return"Grigorios";
},
toString:function(){
return"Greg";
}
}
var people=[person1,person2];
alert(people);//Nicholas,Greg
String());//Nicholas,Greg
LocaleString());//Nikolaos,Grigorios
  我嫩在这⾥定义了两个对象:person1和person2。⽽且还分别为每⼀个对象定义了⼀个toString()⽅法和toLocaleString()⽅法,这两个⽅法返回不同的值。然后,创建⼀个包含前⾯定义的两个对象的数组。在将数组传递给alert()时,输出结果是“Nicholas,Greg”,因为调⽤了数组的每⼀项的toString()⽅法(同样,这与下⼀⾏显式调⽤toString()⽅法得到的结果相同)。⽽当调⽤数组的toLocaleString()⽅法时,输出结果是“Nikolaos,Grigorios”,原因是调⽤了数组每⼀项的toLocaleString()⽅法。
数组类型字符串转数组
  数组继承的toLocaleString(),toString()和valueOf()⽅法,在默认情况下都会以逗号分隔的字符串形式返回数组项。⽽如果使⽤join()⽅法,则可以使⽤不同的分隔符来构建这个字符串。join()⽅法只接受⼀个参数,即⽤作分隔符的字符串,然后返回包含所有数组项的字符串。请看下⾯的例⼦:
var colors=["red","green","blue"];
alert(colors.join(","));//red,green,blue
alert(colors.join("||"));red||green||blue
  在这⾥,我们使⽤join()⽅法重现了toString()⽅法的输出。在传递逗号的情况下,得到了以逗号分隔的数字值。⽽在最后⼀⾏代码中,我们传递了双竖线符号,结果就得到了字符串"red||green||blue“。如过
不给join()⽅法传⼊任何值,或者给它传⼈undefined,则使⽤逗号作分隔符。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。