我有一个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;
当前回答
上述部分的变化如下:
var objLength = function(obj){
var key,len=0;
for(key in obj){
len += Number( obj.hasOwnProperty(key) );
}
return len;
};
这是一种更优雅的方式来集成hasOwnProp。
其他回答
您可以始终执行Object.getOwnPropertyNames(myObject).length,以获得与[].length为普通数组提供的结果相同的结果。
使用Object.keys(myObject).length获取对象/数组的长度
var myObject=新对象();myObject[“firstname”]=“Gareth”;myObject[“lastname”]=“Simpson”;myObject[“age”]=21;console.log(Object.keys(myObject).length)//3.
以下是如何并且不要忘记检查属性是否不在原型链上:
var element_count = 0;
for(var e in myArray)
if(myArray.hasOwnProperty(e))
element_count++;
以下是James Coglan在CoffeeScript中为那些放弃直接JavaScript的人提供的答案:)
Object.size = (obj) ->
size = 0
size++ for own key of obj
size
在这里,您可以给出任何类型的可变数组、对象、字符串
function length2(obj){
if (typeof obj==='object' && obj!== null){return Object.keys(obj).length;}
//if (Array.isArray){return obj.length;}
return obj.length;
}