使用两个变量的内容并将其用作一个变量

use content of two variables and use it as one

本文关键字:变量 一个 两个      更新时间:2023-09-26
这可能是

一个非常基本的问题,但我真的不明白发生了什么。

如果我在Javascript中有一些var,如下所示:

var cube1 = paper.rect(200, 200, 0, 0);
var cube2 = paper.rect(300, 200, 0, 0);
...

它去cube99.

为了捕获所有多维数据集,我正在循环执行以下操作:

for(var i = 0; i < 100; i++) {
    cube+i.attr(fill: '#000');
    console.log(i);
}

但它给我抛出了一个未定义的错误,即"立方体不可用"。

为什么会这样?

假设你的变量是全局的,那么它们是window对象的属性。您可以使用括号表示法:

window['cube'+i].attr(fill: '#000');

但更好的做法是将所有立方体存储在一个数组中:

var cubes = [];
cubes.push(paper.rect(200, 200, 0, 0));
...
for(var i = 0; i < 100; i++) {
    cubes[i].attr(fill: '#000');
    ...
}

与其创建大量变量,不如使用包含所有信息的单个数组:

var cubes = [
    paper.rect(200, 200, 0, 0),  // cubes[0]
    paper.rect(300, 200, 0, 0),  // cubes[1]
    // ...
    paper.rect(300, 200, 0, 0)   // cubes[99]
];
for(var i = 0, len = cubes.length; i < len; ++i) {
    cubes[i].attr(fill: '#000');
    console.log(i);
}

cubes[i].attr(fill: '#000');

不是有效的 JS。也许你应该使用

cubes[i].setAttribute('fill', '#000');