在Javascript中模拟地图/集

San*_*esh 7 javascript arrays json

我有一个json对象,据说box = {};我将继续添加键值box['somename'] = somevalue.可能会重复,somename我希望最后一个实例的值获胜.这一切都很好.

现在我需要对它进行操作,就像它是一个数组一样.基本上,现在我有一组唯一键,我想要一个主要操作box.length来查看有多少独特元素.是否有一种优雅的恒定时间方式,而不必遍历此对象的所有属性?

Eri*_*sen 9

var box = { 
  length: 0,
  add: function(k, v) {
    if (typeof this[k] === 'undefined')
      this.length++;
    this[k] = v;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你重新修改键/值对(`删除框[somekey]`)怎么办? (2认同)