我有一个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。
Try:Object.values(theObject).length
const myObject=新对象();myObject[“firstname”]=“Gareth”;myObject[“lastname”]=“Simpson”;myObject[“age”]=21;console.log(Object.values(myObject).length);
var myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
Object.values(myObject).lengthObject.entries(myObject).length对象.keys(myObject).length
以下是如何并且不要忘记检查属性是否不在原型链上:
var element_count = 0;
for(var e in myArray)
if(myArray.hasOwnProperty(e))
element_count++;
我同样需要计算通过websocket接收的对象所使用的带宽。对我来说,只要找到Stringified对象的长度就足够了。
websocket.on('message', data => {
dataPerSecond += JSON.stringify(data).length;
}