JavaScript 移除所有重复ID对象问题求助
移除数组中所有ID重复的对象
你的需求是移除所有存在重复ID的对象,只保留ID唯一出现的条目——这和常规的“去重保留单个重复项”逻辑不同,可通过以下两步实现:
- 统计数组中每个ID的出现次数
- 过滤出仅出现一次的ID对应的对象
直接用JavaScript代码实现:
// 原始数组 const originalArr = [ {id: 4, country: 'Japan'}, {id: 5, country: 'Korea'}, {id: 6, country: 'Philippines'}, {id: 6, country: 'Philippines'} ]; // 统计每个ID的出现次数 const idOccurrence = originalArr.reduce((countMap, item) => { countMap[item.id] = (countMap[item.id] || 0) + 1; return countMap; }, {}); // 过滤出仅出现一次的对象 const filteredArr = originalArr.filter(item => idOccurrence[item.id] === 1); console.log(filteredArr); // 输出结果: // [{id: 4, country: 'Japan'}, {id: 5, country: 'Korea'}]
逻辑说明
reduce遍历数组,用对象记录每个ID的出现次数,键为ID值,值为出现次数filter遍历数组,仅保留对应ID出现次数为1的对象,以此移除所有含重复ID的条目
内容的提问来源于stack exchange,提问作者Azor Ahai
相关产品推荐
相关产品推荐

