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;
}

 

posted @ 2018-06-26 21:42  hahazexia  阅读(699)  评论(0)    收藏  举报