
高效处理数组对象中重复id值
本文提供一种方法,解决包含重复ID的数组对象问题,为重复ID的对象赋予不同的属性值。 假设我们有一个数组对象,其中部分对象的ID重复,我们需要识别这些重复的ID,并为其添加一个新的属性,例如value,赋予不同的值(例如true或false)。
问题描述:
给定如下数组:
const list = [
{ id: 1, name: '小明' },
{ id: 1, name: '小红' },
{ id: 2, name: '小强' },
{ id: 3, name: '小张' },
{ id: 4, name: '小兰' },
{ id: 1, name: '小青' }
];目标是修改数组,使相同ID的对象拥有不同的value属性,第一个出现设置为true,其余设置为false。 最终结果如下:
const list = [
{ id: 1, name: '小明', value: true },
{ id: 1, name: '小红', value: false },
{ id: 2, name: '小强' },
{ id: 3, name: '小张' },
{ id: 4, name: '小兰', value: true },
{ id: 4, name: '小青', value: false }
];JavaScript解决方案:
以下代码实现了这一目标:
const list = [
{ id: 1, name: '小明' },
{ id: 1, name: '小红' },
{ id: 2, name: '小强' },
{ id: 3, name: '小张' },
{ id: 4, name: '小兰' },
{ id: 1, name: '小青' }
];
const idMap = {};
list.forEach(item => {
if (idMap[item.id]) {
item.value = false;
} else {
idMap[item.id] = true;
if (list.filter(i => i.id === item.id).length > 1) {
item.value = true;
}
}
});
console.log(list);这段代码利用一个idMap对象来跟踪已遇到的ID。 遍历数组,如果ID已存在于idMap中,则设置value为false;否则,将其添加到idMap中,并检查该ID出现的次数,如果次数大于1,则设置value为true。 这种方法简洁高效地解决了重复ID问题。
以上就是如何巧妙解决数组对象中重复ID值的处理问题?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号