开发者问题收集

Javascript 无法设置未定义的属性 0

2017-06-14
49865

此代码生成错误:

Uncaught TypeError: Cannot set property '0' of undefined

我想在数组中分配随机数,请帮忙。

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

您缺少数组初始化:

var array = [];

将此放入您的示例中,您将拥有:

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

此外,您还应从索引 0 开始分配值。正如您在日志中看到的那样,所有未分配的值都获得 undefined ,这适用于您的索引 0

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

var array = [];
for(var i = 0; i<9;i++) {
    array[i]= Math.floor(Math.random() * 7);
}
console.log(array);
Isac
2017-06-14

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

var array = [];
Suresh Atta
2017-06-14

您需要先初始化数组

 var array = [];

添加此行后,您的代码应该可以正常工作

2017-06-14