JS 计算一个对象(Object)的长度

本文介绍了一种计算JavaScript对象中属性数量的方法,通过自定义函数和使用内置的Object.keys()方法来实现,以此来控制对象中元素的数量不超过设定的最大值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

First

在我们日常开发中,对象的使用频率很高,获取数组的长度是很简单,但如何获取对象的长度?
假设我的书包只能放10本书,那么我就得控制我现有的书本数:

var schoolBagMax=10;

var books = {  

    "红楼梦": "曹雪芹",  

    "水浒传": "施耐庵,罗贯中",  

    "三国演义": "罗贯中",  

    "西游记": "吴承恩"  

};  

 

分析现在的需求,我们得控制书本数小于书包最大容量,因为已知容量,所以先算出现在书本数:
 

function countProperties (obj) { 

    var count = 0;  

    for (var key in obj) { 

        //if (Object.prototype.hasOwnProperty.call(obj, key)) {//感觉好像没必要,希望有人能探讨一下
        //if (obj.hasOwnProperty(key)) {//同上简写
            count++;  //直接加
        //}  

    }  

    return count;  

}    

var bookCount = countProperties(books);  
console.log(bookCount);  // 输出: 4  

if(bookCount<=schoolBagMax){
    console.log("能装");  
}else{
    console.log("装不下了"); 
}



这是可以实现的,只是好像没必要,js实际上有一个方法能直接实现:


var arr = Object.keys(books);  

console.log(arr);  //Outputs: Array [ "红楼梦", "水浒传", "三国演义", "西游记" ] 

console.log(arr.length);  //Outputs: 4  

if(arr.length<=schoolBagMax){
    console.log("能装");  
}else{
    console.log("装不下了"); 
}

Object.keys() 方法会返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用for-in循环遍历该对象时返回的顺序一致(两者的主要区别是 for-in 还会遍历出一个对象从其原型链上继承到的可枚举属性)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值