如何使用变量定义数组,然后用数字填充每个数组?

时间:2015-01-20 16:08:02

标签: javascript arrays for-loop undefined populate

我有一个数组,其中定义了多个变量。但是当试图将它们中的每一个设置为0时,我得到一个错误,指出数组的第一个变量是未定义的。

这就是我所拥有的:

var keys = [key1, key2, key3, etc...];

function loadKeys(){
    for(i=0;i<36;i++) {
        keys[i] = 0;
    }
}

3 个答案:

答案 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而失败,因为key1key2等不存在 - 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 +中试用。

ES6 compatibility table

答案 2 :(得分:0)

var keys = ['key1', 'key2', 'key3'];

function loadKeys(){
    for(i=0;i<36;i++) {
        keys[i] = 0;
    }
}
到目前为止,

对我有用。我不知道你的问题,你的阵列中有那些变量吗?