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


有一段代码不能理解


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

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

JavaScript 数组

上条当麻@ 9 years, 10 months ago

你可以这么理解:


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

Scave answered 9 years, 10 months ago

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

春哥信徒A answered 9 years, 10 months ago

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

我嘿咻的强 answered 9 years, 10 months ago

Your Answer