JavaScript 对象数组去重:以最后一个元素为准
可以使用 reduce 方法对对象数组进行去重,以最后一个为准。具体步骤如下:
- 使用 reduce 方法对对象数组进行遍历,返回一个新的数组。
- 在遍历过程中,判断当前对象是否已经存在于新数组中。
- 如果不存在,则将当前对象添加到新数组中;如果存在,则用当前对象替换新数组中已有的该对象,以保证最后一个为准。
示例代码如下:
const arr = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 1, name: 'orange' },
{ id: 3, name: 'peach' },
{ id: 2, name: 'grape' },
{ id: 4, name: 'pear' },
]
const result = arr.reduce((acc, cur) => {
const index = acc.findIndex(item => item.id === cur.id);
if (index === -1) {
acc.push(cur);
} else {
acc[index] = cur;
}
return acc;
}, []);
console.log(result);
// Output: [{ id: 1, name: 'orange' }, { id: 3, name: 'peach' }, { id: 2, name: 'grape' }, { id: 4, name: 'pear' }]
在上面的示例中,最后一个对象会替换掉之前的同样 id 的对象,因此最终结果是以最后一个为准的去重数组。
原文地址: https://www.cveoy.top/t/topic/mNGf 著作权归作者所有。请勿转载和采集!