技术文摘
判断数组对象中重复数据的方法及重复次数统计
2025-01-09 16:41:08 小编
在数据处理中,判断数组对象中重复数据并统计其重复次数是一项常见需求。掌握有效的方法不仅能提升工作效率,还能确保数据的准确性和完整性。
利用JavaScript的对象特性来实现判断和统计。创建一个空对象,遍历数组对象。在遍历过程中,以数组对象中的某个唯一标识属性作为新建对象的键。每次遇到一个新的键值对,就在新建对象中添加一个属性,属性值初始化为1;如果遇到已经存在的键,就将其对应属性值加1。例如:
const array = [
{ id: 1, name: '苹果' },
{ id: 2, name: '香蕉' },
{ id: 1, name: '苹果' }
];
const countObj = {};
array.forEach(item => {
const key = item.id;
if (countObj[key]) {
countObj[key]++;
} else {
countObj[key] = 1;
}
});
console.log(countObj);
这样就能清晰地看到每个唯一标识的重复次数。
使用Map数据结构。Map允许存储键值对,并且有一些方便的方法。遍历数组对象时,使用Map的has方法判断键是否存在。若存在,通过get方法获取当前计数并加1,再用set方法更新计数;若不存在,则直接设置初始计数为1。代码如下:
const array2 = [
{ code: 'A', value: '数据1' },
{ code: 'B', value: '数据2' },
{ code: 'A', value: '数据1' }
];
const countMap = new Map();
array2.forEach(item => {
const key = item.code;
if (countMap.has(key)) {
countMap.set(key, countMap.get(key) + 1);
} else {
countMap.set(key, 1);
}
});
console.log(countMap);
最后,借助reduce方法也能轻松实现。reduce方法会对数组中的每个元素执行一个提供的“reducer”函数,将其结果汇总为单个返回值。以数组对象中的特定属性作为分组依据,通过reduce方法进行累加计数。示例代码:
const array3 = [
{ num: 5 },
{ num: 3 },
{ num: 5 }
];
const result = array3.reduce((acc, cur) => {
const key = cur.num;
acc[key] = (acc[key] || 0) + 1;
return acc;
}, {});
console.log(result);
通过这些方法,能快速判断数组对象中的重复数据并准确统计其重复次数,在实际的数据处理场景中发挥重要作用。
- Java 程序员历经五面阿里终获 Offer 实属不易
- 2019 年 Java 开发中的 7 项主流热门 IT 技术盘点
- Node.js 实现任意网页资源爬取与高质量 PDF 本地输出
- 超级计算机 500 强首次皆达千万亿次 中国神威太湖之光位列第三
- 360 自研分布式海量小文件存储系统的构建与落地
- 你能分清“正向代理”和“反向代理”吗?
- 环球时报:中国半导体产业应成“打不死的鸟”
- 近万 Star!中国人开源的 Redis 集群部署解决方案 Codis 在 Github 上
- 4 种超实用的 CSS 代码段,你掌握了吗?
- NodeJS 在项目中的闪耀之路
- 从程序员到架构师:读百篇架构设计文章 不如做这一次
- Python 爬虫抓取技术的奥秘
- 一次诡异的数据库“死锁”问题根源何在
- 微服务下单背后的未知经历
- 华为反击向 Verizon 索要专利费 美国难安