Array.prototype.join()
join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
此方法不会改变数组。
参数是separator分隔符,指定一个字符串来分隔数组的每个元素,如果不传,默认是逗号,如果传空字符串"",则元素之间没有任何字符。
返回所有元素连接起来的字符串,如果 arr.length 为0,则返回空字符串。
如果元素是undefined 或者null, 则会转化成空字符串。
var a = ['Wind', 'Rain', 'Fire']; var myVar1 = a.join(); // myVar1的值变为"Wind,Rain,Fire" var myVar2 = a.join(', '); // myVar2的值变为"Wind, Rain, Fire" var myVar3 = a.join(' + '); // myVar3的值变为"Wind + Rain + Fire" var myVar4 = a.join(''); // myVar4的值变为"WindRainFire"
下面的示例将连接类数组对象(arguments),通过在Array.prototype.join上调用Function.prototype.call。
function f(a, b, c) { var s = Array.prototype.join.call(arguments); console.log(s); // '1,a,true' } f(1, 'a', true);
实现简单的join():
Array.prototype.join = function (separator) { var s = ','; if (arguments.length != 0) { var s = String(separator); } var res = ''; if (this.length == 0) { return res; } for (var i = 0; i < this.length; i++) { res += this[i]; if (i < this.length - 1) { res += s; } } return res; }