我有一个
Javascript对象,我试图用作“hashmap”.钥匙总是字符串,所以我不认为我需要像
this SO question中描述的任何东西.(我也不希望键的数量超过10左右,所以我并不特别关心查找为O (n)对O(log n)等)
我想要的内置Javascript对象的唯一功能似乎没有,是快速找出对象中键/值对的数量,就像Java的Map.size返回的那样.当然,你可以做一些类似的事情:
function getobjectsize(myObject) { var count=0 for (var key in myObject) count++ return count }
但这似乎是一个黑客和迂回.有没有一个“正确的方法”来获取对象中的字段数量?
解决方法
修正:您需要在每次迭代中检查myObject.hasOwnProperty(key),因为可以有继承的属性.例如,如果在循环Object.prototype.test =’test’之前这样做,测试将被计数.
并谈论你的问题:你可以定义一个帮助函数,如果速度并不重要.毕竟,我们定义了修剪功能和其他简单的工具.很多javascript是“有点黑客和迂回”:)
更新
失败的例子,按要求.
Object.prototype.test = 'test'; var x = {}; x['a'] = 1; x['b'] = 2;
返回的计数将为3.