首页 > 解决方案 > 如何创建以变量为键的对象?

问题描述

我有一个最初是空的对象,但它最终看起来像这样:

numusers = { room1 : 1, room2 : 5, room3 : 2};

这将根据情况而有所不同。如果某个用户进入 room1,那么此时应该创建 room1 并且值将是 1,如果其他用户同样进入 room2,但是如果另一个用户进入 room1,那么值将不得不增加到 2,依此类推。

我试过这个:

    numusers = { room1 : 1, room2 : 5, room3 : 2};
     let initnum = 0; //the initial value each room will have
     var inroom = "room1"; //this is the room this user entered
     numusers.push({ inroom : ++initnum }); 

它没有用,我想不出不同的方法。我应该在这里做什么?

谢谢你。

标签: javascriptobject

解决方案


numusers是一个对象,而不是一个数组。

如果要设置属性的值,可以使用括号表示法:

let initnum = 0;
var inroom = "room1";
numusers = {};
numusers[inroom] = initnum
console.log(numusers)

要在输入重复键时递增,您可以首先检查该属性是否存在:

newusers = {}

function process(room){
  newusers[room] = newusers[room] ? newusers[room]+1 : 1;
  console.log(newusers)
}

process("room1")
process("room1")
process("room2")


推荐阅读