解决方案
使用hasOwnProperty判断
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// Get the size of an object
var size = Object.size(myObj);
“Object.keys()”获取仅包含可枚举属性名称的数组,
“Object.getOwnPropertyNames()”获取包含不可枚举属性的名称。
function size(obj, enumerablesOnly) {
return enumerablesOnly === false ?
Object.getOwnPropertyNames(obj).length :
Object.keys(obj).length;
}
测试:
var myObj = Object.create({}, {
getFoo: {},
setFoo: {}
});
myObj.Foo = 12;
var myArr = [1,2,5,4,8,15];
console.log(size(myObj)); // Output : 1
console.log(size(myObj, true)); // Output : 1
console.log(size(myObj, false)); // Output : 3
console.log(size(myArr)); // Output : 6
console.log(size(myArr, true)); // Output : 6
console.log(size(myArr, false)); // Output : 7
如何获取JavaScript对象的长度
var myObject = new Object(); myObject["firstname"] = "Hello"; myObject["lastname"] = "World"; myObject["age"] = 123;
如何统计JavaScript对象中属性的数量?
日期:2020-03-24 23:22:50 来源:oir作者:oir
