在很多时候我们需要知道一个对象的数据长度,但是不能直接计算,只能自己写方法,现在就介绍几种方法
var obj={
a:1,
b:2,
c:3
}
1、在object的原型对象上扩展,这种方法属于可以装逼的方法
Object.prototype.length = function() {
var count = 0;
for(var i in this){
count ++;
}
return count;
};
2、普通的封装函数
function countobj(obj){
var count = 0;
for(var key in obj){
if(Object.prototype.hasOwnProperty.call(obj,key)){
count++;
}
}
return count;
}
var objlength=countobj(obj)
为了方便,Object.prototype.hasOwnProperty.call(obj,key)也可以写成obj.hasOwnProperty(key),过滤原型对象中的属性
3、object中自带一个keys方法,可以将object的key存储为一个数组
var objKeys=Object.keys(obj);
console.log(objKeys)
console.log(objKeys.length)