search

Home  >  Q&A  >  body text

javascript - Array(i).join(i)为何返回的是这个结果呢?

有一段代码不能理解

for (var i = 2; i <= 6; i += 2) {
            temp = Array(i + 1).join(i);
            console.log(temp);
        }

结果输出的是22,4444,666666.这是为什么啊?

阿神阿神2894 days ago476

reply all(3)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:24:25

    Array(i + 1) 表示长度为i+1的数组,但是均为空,join方法的参数代表分隔符,这里代表以246,为分隔符,所以为空2空2空空4空4空4空4空

    reply
    0
  • PHPz

    PHPz2017-04-10 15:24:25

    创建数据的三种方法。
    new Array();
    new Array(size);
    new Array(element0, element1, ..., elementn);
    当传入一个参数时,是第二种构建方法。
    以i=2来说。
    temp = Array(2+1).join(2);
    创建长度为为3的数据,
    join(2),2为分隔符。 所以输出 22;

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:24:25

    你可以这么理解:

    [undefined, undefined, undefined].join(2);
    "22"
    [undefined, undefined, undefined, undefined, undefined].join(4);
    "4444"
    [undefined, undefined, undefined, undefined, undefined, undefined, undefined].join(6);
    "666666"
    

    reply
    0
  • Cancelreply