我有一个JavaScript对象。是否有一种内置或公认的最佳实践方法来获取此对象的长度?
const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
我有一个JavaScript对象。是否有一种内置或公认的最佳实践方法来获取此对象的长度?
const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
当前回答
使用Object.keys(myObject).length获取对象/数组的长度
var myObject=新对象();myObject[“firstname”]=“Gareth”;myObject[“lastname”]=“Simpson”;myObject[“age”]=21;console.log(Object.keys(myObject).length)//3.
其他回答
在某些情况下,最好将大小存储在单独的变量中。特别是,如果要在一个位置添加一个元素到数组中,并且可以很容易地增加大小。如果你需要经常检查尺寸的话,这显然会更快。
实现这一点的一个好方法(仅限Internet Explorer 9+)是在长度属性上定义一个神奇的getter:
Object.defineProperty(Object.prototype, "length", {
get: function () {
return Object.keys(this).length;
}
});
你可以这样使用它:
var myObj = { 'key': 'value' };
myObj.length;
它会给出1。
如果你知道你不必担心hasOwnProperty检查,你可以这样使用Object.keys()方法:
Object.keys(myArray).length
以下是James Coglan在CoffeeScript中为那些放弃直接JavaScript的人提供的答案:)
Object.size = (obj) ->
size = 0
size++ for own key of obj
size
var myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
Object.values(myObject).lengthObject.entries(myObject).length对象.keys(myObject).length