如果我有一个对象:
var enemies = {};
var enemyNumber = 0;
然后如何创建一个以字符串+变量命名的对象的新属性,就像这样(我知道这不是有效的javascript):
enemyNumber++;
enemies.enemy + enemyNumber.toString() = {};
(enemies.enemy + enemyNumber.toString()
是另一个对象)
答案 0 :(得分:0)
向<input v-model="message">
// ...
computed: {
message: {
get () {
return this.$store.state.obj.message
},
set (value) {
this.$store.commit('updateMessage', value)
}
}
}
对象添加动态属性:
enemies
连接字符串和数字时不需要var enemies = {};
var enemyNumber = 0;
enemies.enemy="Coco";
...
enemies.enemyNumber = enemies.enemy + enemyNumber;
。
答案 1 :(得分:0)
如果要为每个对象提供顺序标识符:
var enemies = { };
var enemyNumber = 0;
function addEnemy(attributes) {
attributes.id = enemyNumber;
enemies[enemyNumber] = attributes;
enemyNumber++;
}
addEnemy({ name: 'Boss Man' });
请记住,您可以使用[...]
表示法引用对象的属性,并以这种方式计算值。 x.y
和x['y']
相同。
答案 2 :(得分:0)
您可以使用括号创建动态属性:
var enemies = {};
var enemyNumber = 0;
enemyNumber++;
enemies['enemy' + enemyNumber] = {};
console.log(enemies);
&#13;
答案 3 :(得分:0)
这是:
enemies['enemy' + enemyNumber] = {}
在JavaScript中,点运算符可与括号表示法互换。这意味着enemies.enemy1
与enemies['enemy1']
相同。括号表示法更加间接,允许您使用表达式来引用对象的属性。