通过字符串+变量动态构造键

时间:2017-07-02 08:49:30

标签: javascript arrays object key

我想通过字符串+变量动态构造键。

这是我希望它可能是一个例子:

var object = {x:0,y:0};
for(i=0;i<5;i++){
    if(i === 0){
        object.p+i = true;
    }else{
        object.p+i = false;
    }
}

//result
object.p0 = true;
object.p1 = false;
object.p2 = false;
object.p3 = false;
object.p4 = false;

我有一个穿过一系列线的物体,它使用键和值来跟踪开始前往哪一组坐标,基本上将所有线路切换为假,除了当前正在行进的线路to,但是当它到达它时,它然后将其变为false而下一个变为true,因此它开始向它行进。我可以通过复制和粘贴代码并更改数字来做到这一点,但上面是我想要完成的事情,我尝试做一些寻找答案,但没有结论我正在尝试做什么。

for(a=0;a<paths.length;a++){
    var p = paths[a]; 
    if(a===0 && e.p0){
        if(cc(e, p, 1)){e["p" + a] = false; e["p" + a + 1] = true;}
    }else if(e["p" + a]){
        moveObj1ToObj2Smooth(e, p, 2);
        if(cc(e, p, 1)){e["p" + a] = false; e["p" + a + 1] = true;}
    }
}

如果我可以通过字符串+变量动态构造键,这将更容易,这样我就可以运行循环而不必复制/粘贴/编辑20多个不同的时间。

任何帮助表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:0)

你可以像这样完成它。

var object = {x:0,y:0};
for(i=0;i<5;i++){
    object["p"+i] = (i === 0)
}

一旦你这样做,你可以读取属性

var a = object["p0"];

或者作为:

var a = object.p0;