我想通过字符串+变量动态构造键。
这是我希望它可能是一个例子:
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多个不同的时间。
任何帮助表示赞赏,谢谢。
答案 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;