解决方案
使用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