JavaScript中如何使用变量作为对象键实现动态房间人数统计?
错误原因
push()是JavaScript数组专属方法,普通对象没有该方法,直接调用会抛出类型错误- 直接用
{inroom: ++initnum}声明对象时,键名会被识别为固定字符串inroom,不会解析inroom变量存储的动态房间名,要使用动态属性名需要用对象[变量名]的语法
实现方案
核心逻辑是先校验目标房间属性是否存在,不存在则默认赋值为0,再做累加操作,单语句即可完成需求:
// 初始为空对象也可正常运行 let numusers = {}; const inroom = "room1"; // 替换为实际进入的房间名 // 累加逻辑 numusers[inroom] = (numusers[inroom] || 0) + 1;
效果验证
- 首次进入room1时,
numusers.room1不存在,(numusers[inroom] || 0)结果为0,加1后numusers.room1值为1,符合初始化要求 - 后续再次进入room1时,
numusers.room1已有值,直接在原有值基础上加1,符合累加要求
内容的提问来源于stack exchange,提问作者Cain Nuke
相关产品推荐
相关产品推荐

