JavaScript 中如何对 dictionary 对象的指定 key 执行自增操作?
问题原因
你初始化的dic是空对象,不存在key属性,首次读取dic['key']返回undefined,undefined执行自增运算结果为NaN,后续所有自增操作都基于NaN执行,最终结果始终是NaN,无法得到预期的累加值。
修复方案
可任选以下两种方案修改:
- 方案1:初始化对象时提前为目标属性赋值初始值0
var dic = { key: 0 } for (let i = 0; i < 100; i++) { dic['key']++ } console.log(dic) // 输出:{ key: 100 }
- 方案2:自增前做兼容处理,属性为空时自动赋值初始值0
var dic = {} for (let i = 0; i < 100; i++) { // 空值合并运算符仅在属性为undefined/null时取默认值0,兼容性更好 dic['key'] = (dic['key'] ?? 0) + 1 } console.log(dic) // 输出:{ key: 100 }
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

