我有一个数组,其中定义了多个变量。但是当试图将它们中的每一个设置为0时,我得到一个错误,指出数组的第一个变量是未定义的。
这就是我所拥有的:
var keys = [key1, key2, key3, etc...];
function loadKeys(){
for(i=0;i<36;i++) {
keys[i] = 0;
}
}
答案 0 :(得分:2)
错误是原因,因为key1未定义为变量。实际上有几种不同的方法,包括手动设置键。
var keys = [0,0,0,0...]
而不是输入所有这些,但是如果你的键有一个默认值,你总是可以使用push命令初始化数组
var keys = [];
for (int i= 0; i<36;i++){
keys.push({defaultValue});
}
将使您的数组中的所有元素都使用默认值而不是未定义元素
答案 1 :(得分:2)
您的代码因ReferenceError
而失败,因为key1
,key2
等不存在 - JavaScript运行时不知道您要求的价值。< / p>
您的示例实际上并不需要设置这些变量。如果您只想要一个包含35个元素的数组,所有元素都设置为0
,您可以使用:
var keys = [];
for(var i = 0; i < 36; i ++) {
keys.push(0);
}
有关其他方法,请参阅Most efficient way to create a zero filled JavaScript array?
展望未来,ES6提供了Array.prototype.fill
:
var keys = new Array(35);
keys.fill(0);
此方法尚未广泛实施,但您可以在Firefox 31 +中试用。
答案 2 :(得分:0)
var keys = ['key1', 'key2', 'key3'];
function loadKeys(){
for(i=0;i<36;i++) {
keys[i] = 0;
}
}
到目前为止,对我有用。我不知道你的问题,你的阵列中有那些变量吗?