Javascript数组未定义,没有大小

Javascript数组未定义,没有大小,javascript,arrays,Javascript,Arrays,我试图用while循环填充数组。当我试图读取某个索引处的数据时,它总是给我未定义的数据,但数组的长度告诉我必须添加一些内容 var test = []; while (i < 16) { test[i] = i; i++; console.log(test.length); console.log(test[i]); } 是,请将代码更改为 var test = [], i = 0; while (i < 16) {

我试图用while循环填充数组。当我试图读取某个索引处的数据时,它总是给我未定义的数据,但数组的长度告诉我必须添加一些内容

  var test = [];
  while (i < 16)
  {
    test[i] = i;
    i++;
    console.log(test.length);
    console.log(test[i]);
  }

是,请将代码更改为

var test = [], i = 0;
  while (i < 16)
  {
    test[i] = i;
    i++;
    console.log(test.length);
    console.log(test[i-1]);
  }
var-test=[],i=0;
而(i<16)
{
试验[i]=i;
i++;
控制台日志(测试长度);
控制台日志(测试[i-1]);
}

在为i赋值后,i的值增加了。

在i处插入并检查i+1处的值。这将修复代码-

  var i = 0;
  var test = [];
  while (i < 16)
  {
    test[i] = i;
    console.log(test.length);
    console.log(test[i]);
    i++;
  }
var i=0;
var检验=[];
而(i<16)
{
试验[i]=i;
控制台日志(测试长度);
console.log(test[i]);
i++;
}

i
(0)插入
test[i]
test[0]
),增加
i
(现在是1)并输出
test[i]
test[1]
)。将
i++
移动到
console.log(test[i])。你总是试图读取下一个数组项你不需要将
i
初始化为0吗?既然上面的代码不起作用,怎么会有更多的up投票:),i未定义,未定义不小于16,i++是NaN@vtz答案很好。只需要将i初始化为0。@BhojendraNepal我同意,但为什么人们只是自动单击,这是不好的。因为@ScepT1c的问题是他看到了未定义的,所以假设他在别处初始化了i。何时删除控制台日志(例如使用uglify)i将停止递增,因此这是一个糟糕的做法。我没有投反对票,但我想这就是为什么有人投了反对票else@StrandedKid我明白你的意思,所以删除这个。谢谢我有时希望投反对票的人也有礼貌地留下评论。
  var i = 0;
  var test = [];
  while (i < 16)
  {
    test[i] = i;
    console.log(test.length);
    console.log(test[i]);
    i++;
  }