技术文摘
判断数组对象中重复数据的方法及重复次数统计
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);
通过这些方法,能快速判断数组对象中的重复数据并准确统计其重复次数,在实际的数据处理场景中发挥重要作用。
- CSS3简单易学技巧与实用案例大公开
- 前端干货:借助 CSS3 fit-content 实现元素水平居中
- 借助fit-content达成页面元素水平居中布局
- 借助 fit-content 属性达成页面元素水平对齐效果
- 在HTML中如何利用不同步长属性使用范围输入
- JavaScript 中 abort 事件的用途
- JavaScript 中 URL 编码和解码的方法
- Vue 3 虚拟 DOM 优化秘籍:大幅提升页面性能
- JavaScript 中如何检测数字是否为无穷大
- Vue3+TS+Vite开发:有效管理项目依赖的技巧
- 掌握 CSS3 fit-content 技巧,轻松实现元素水平居中
- CSS3 fit-content技术剖析:达成水平居中效果
- Vue3+TS+Vite开发技巧 优化Vue3应用性能方法
- CSS3多列属性解析
- Vue3、TS 与 Vite 开发秘籍:Vue3 Composition API 的优雅运用