我有一个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;
当前回答
为了不干扰原型或其他代码,您可以构建和扩展自己的对象:
function Hash(){
var length=0;
this.add = function(key, val){
if(this[key] == undefined)
{
length++;
}
this[key]=val;
};
this.length = function(){
return length;
};
}
myArray = new Hash();
myArray.add("lastname", "Simpson");
myArray.add("age", 21);
alert(myArray.length()); // will alert 2
如果始终使用add方法,长度属性将是正确的。如果你担心自己或其他人忘记使用它,你可以将其他人发布的属性计数器添加到长度方法中。
当然,您可以始终覆盖这些方法。但即使您这样做了,您的代码也可能会明显失败,从而易于调试
其他回答
使用Object.entries方法获取长度是实现此目的的一种方法
const objectLength=obj=>Object.entries(obj).length;常量人={id:1,name:“John”,年龄:30岁}常量汽车={类型:2,颜色:“红色”,}console.log(对象长度(人));//3.console.log(objectLength(car));//2.
<脚本>myObj={“key1”:“您好”,“key2”:“再见”};var size=对象.keys(myObj).length;console.log(大小);</script><p id=“myObj”><b>myObj</b>中<b>键的数量为:<script>document.write(size)</script></p>
这对我有用:
var size = Object.keys(myObj).length;
只需使用此项即可获得长度:
Object.keys(myObject).length
简单的内衬:
console.log(Object.values({id:“1”,年龄:23,角色编号:90}).length);
您可以始终执行Object.getOwnPropertyNames(myObject).length,以获得与[].length为普通数组提供的结果相同的结果。