巧妙解决javascript数组对象中重复id问题
本文提供一种高效的JavaScript方法,用于处理数组对象中重复的ID,并为具有相同ID的对象赋予不同的值。
假设我们有一个包含重复ID的数组对象:
const list = [ { id: 1, name: '小明' }, { id: 1, name: '小红' }, { id: 2, name: '小强' }, { id: 3, name: '小张' }, { id: 4, name: '小兰' }, { id: 1, name: '小青' }, { id: 4, 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: 1, name: '小青', value: true }, { id: 4, name: '小青', value: false } ];
为了实现这个目标,我们可以使用一个对象来跟踪ID的出现次数,并使用另一个对象记录每个ID已经赋予的值。
立即学习“Java免费学习笔记(深入)”;
以下是实现代码:
const list = [ { id: 1, name: '小明' }, { id: 1, name: '小红' }, { id: 2, name: '小强' }, { id: 3, name: '小张' }, { id: 4, name: '小兰' }, { id: 1, name: '小青' }, { id: 4, name: '小青' } ]; const idCounts = {}; const idValues = {}; list.forEach(item => { idCounts[item.id] = (idCounts[item.id] || 0) + 1; }); list.forEach(item => { if (idCounts[item.id] > 1) { if (!idValues[item.id]) { idValues[item.id] = true; } item.value = idValues[item.id]; idValues[item.id] = !idValues[item.id]; } }); console.log(list);
这段代码首先统计每个ID出现的次数,然后遍历数组,为重复ID的对象添加value属性,并交替赋予true和false值。 idValues 对象保证了同一个ID的后续对象会得到不同的布尔值。 这种方法简洁高效,易于理解和维护。
以上就是JavaScript数组对象中重复ID如何处理并赋予不同值?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号