
巧妙解决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如何处理并赋予不同值?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1564916.html
微信扫一扫
支付宝扫一扫