动态 属性 名称串联

Dynamic property name concatenation

我正在寻找一种根据另一个变量的值分配给一个变量的简单方法。

device.slot2_clipList[clipNumber] = singleClipDetails;

我想做的是:用另一个变量替换“2”,这样我就可以 运行 相同的操作,而只是改变 var slotNumber,并写入对应的变量。

我试过了

device.slot + device.slotNumber + _clipList[clipNumber]

但是(显然?),这是行不通的。

如何做到这一点? (也许我错误地命名了问题,但这是我能想到的最接近的。) 谢谢

device['slotNumber' + _clipList[clipNumber] ]

解释:

javascript 中的

foo.barfoo['bar'] 相同(甚至在性能上)。所以任何对象 属性 名称都可以从字符串构建。

这就是括号符号的用途

var i = 2;
device['slot' + i + '_clipList'][clipNumber] = singleClipDetails;