如何用字符串加变量命名对象的属性?

时间:2017-07-04 19:49:44

标签: javascript string variables object javascript-objects

如果我有一个对象:

var enemies = {};
var enemyNumber = 0;

然后如何创建一个以字符串+变量命名的对象的新属性,就像这样(我知道这不是有效的javascript):

enemyNumber++;
enemies.enemy + enemyNumber.toString() = {};

enemies.enemy + enemyNumber.toString()是另一个对象)

4 个答案:

答案 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.yx['y']相同。

答案 2 :(得分:0)

您可以使用括号创建动态属性:

&#13;
&#13;
var enemies = {};
var enemyNumber = 0;

enemyNumber++;
enemies['enemy' + enemyNumber] = {};

console.log(enemies);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这是:

enemies['enemy' + enemyNumber] = {}

在JavaScript中,点运算符可与括号表示法互换。这意味着enemies.enemy1enemies['enemy1']相同。括号表示法更加间接,允许您使用表达式来引用对象的属性。