Javascript数组未定义,没有大小
我试图用while循环填充数组。当我试图读取某个索引处的数据时,它总是给我未定义的数据,但数组的长度告诉我必须添加一些内容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) {
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++;
}