js获取对象数组中重复项的个数并排序

前言

在开发中,我们经常需要获取对象数组中每一项重复项的个数,并按照出现次数排序。这在处理数据时非常有用,可以让我们快速分析和可视化数据。本篇博客将介绍如何使用JavaScript实现这个功能。

遍历数组并统计次数

首先,我们需要遍历目标对象数组,并统计每个对象出现的次数。我们可以使用forEach()或for...of循环实现,对于每个对象,以其特定属性的值作为键,在一个空对象中查找相应的值。如果已经存在,则将其加1;否则,将其初始值设为1。代码示例:

``` const arr = [ { id: 1, name: 'Tom' }, { id: 2, name: 'Jerry' }, { id: 3, name: 'Tom' }, { id: 4, name: 'Lucy' }, { id: 5, name: 'Jerry' } ];

const countObj = {};

arr.forEach((item) => { const key = item.name; if (countObj[key]) { countObj[key]++; } else { countObj[key] = 1; } });

console.log(countObj); // {Tom: 2, Jerry: 2, Lucy: 1} ```

在这个例子中,我们使用forEach()方法遍历了包含5个对象的数组,并以name属性的值作为键,在countObj对象中查找相应的值。如果该值已经存在,则将其加1;否则,将其初始值设为1。最终,我们得到了一个包含每个人名出现次数的对象。

将次数排序并输出

接下来,我们需要将对象中的次数排序,并以某种格式输出。我们可以使用Object.entries()方法将对象转化为键值对数组,然后使用sort()方法按照值的大小升序或降序排列。最后,我们可以选择以表格、列表或其他方式输出结果。代码示例:

``` const countArr = Object.entries(countObj).sort((a, b) => b[1] - a[1]);

console.log(countArr); // [["Tom", 2], ["Jerry", 2], ["Lucy", 1]]

// 输出表格 console.table(countArr);

// 输出列表 countArr.forEach(([key, value]) => { console.log(${key}: ${value}); }); ```

在这个例子中,我们先使用Object.entries()方法将countObj对象转化成一个包含键值对的数组。然后,我们使用sort()方法按照出现次数降序排列。最后,我们可以选择以表格或列表形式输出结果。

总结

本篇博客介绍了如何使用JavaScript获取对象数组中每一项重复项的个数,并按照出现次数排序。通过使用forEach()方法遍历数组,以特定属性的值作为键,在一个空对象中统计每个对象出现的次数。然后,我们使用Object.entries()方法将对象转化成键值对数组,并使用sort()方法按照值的大小排序。最后,我们可以选择以表格或列表形式输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱划水de鲸鱼哥~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值