Javascript无法设置undefined的属性0

时间:2017-06-14 09:12:16

标签: javascript

此代码生成错误"未捕获类型错误无法设置未定义的属性0"虽然我想在数组中分配随机数,请帮忙。

var array;
for(var i = 1; i<10;i++) {
    array[i]= Math.floor(Math.random() * 7);
}
console.log(array);

4 个答案:

答案 0 :(得分:7)

您缺少阵列初始化:

var array = [];

将这个放到你的例子中,你会得到:

&#13;
&#13;
var array = []; //<-- initialization here
for(var i = 1; i<10;i++) {
    array[i]= Math.floor(Math.random() * 7);
}
console.log(array);
&#13;
&#13;
&#13;

此外,您应该开始从索引0分配值。正如您在日志中看到的,所有未分配的值均为undefined,这适用于您的索引0

因此,更好的解决方案是从0开始,并将for的结尾调整为<9,以便创建相同数量的元素:

&#13;
&#13;
var array = [];
for(var i = 0; i<9;i++) {
    array[i]= Math.floor(Math.random() * 7);
}
console.log(array);
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您还没有告诉array是一个数组告诉javascript将其视为一个数组,

var array = [];

答案 2 :(得分:0)

你需要先初始化数组

 var array = [];

添加此行后,您的代码应该正常运行

答案 3 :(得分:0)

只需初始化数组即可。

var array = []

var array = [];
for(var i = 1; i<10;i++) {
    array[i]= Math.floor(Math.random() * 7);
}
console.log(array);