对于没有索引的循环javascript

时间:2015-02-15 17:59:29

标签: javascript arrays loops for-loop

我想显示一个没有显示索引的数组。 for循环返回未在通常声明中显示的数组索引。 我想发送一个像[1,2,3 ...]这样的数组,但是从for循环中检索后,我还没有上述格式。如何按上述方式存储我的值。

var a = [];
for (var i = 1; i < 8; i++) {
    a[i] = i;
};
console.log(a);

输出:

[1: 1, 2: 2 ...]

期望的输出:

[1,2,3]// same as console.log([1,2,3])

4 个答案:

答案 0 :(得分:3)

数组索引从零开始,你的循环从1开始,缺少索引0你有一个稀疏数组,这就是你得到那个输出的原因,你可以使用push在不使用索引的情况下向数组添加值。

var a = [];
for (var i = 1; i < 8; i++) {
    a.push(i);
};
console.log(a);

答案 1 :(得分:2)

问题是您使用1索引启动数组,使初始0位置为空(在数组中称为&#34; hole&#34;)。基本上你将数组视为普通对象(当然你可以做但它不符合数组结构的目的) - 并且因为这个浏览器console.log决定向你显示键,因为它认为你想看到对象键以及它的价值观。

您需要push数组到数组:

var a = [];
for (var i = 1; i < 8; i++) {
    a.push(i);
};

答案 2 :(得分:1)

我不同意这里提供的答案。做这样的事情的最好方法是:

var a = new Array(7);
for (var i = 0; i < a.length; i++) {
    a[i] = i + 1;
}
console.log(a);

答案 3 :(得分:0)

您的代码使每个索引等于i,因此请按照这种方式使用

var a = [];
for (var i = 1; i < 8; i++) {
a.push(i);
};
console.log(a);