可以使用 reduce 方法对对象数组进行去重,以最后一个为准。具体步骤如下:

  1. 使用 reduce 方法对对象数组进行遍历,返回一个新的数组。
  2. 在遍历过程中,判断当前对象是否已经存在于新数组中。
  3. 如果不存在,则将当前对象添加到新数组中;如果存在,则用当前对象替换新数组中已有的该对象,以保证最后一个为准。

示例代码如下:

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 的对象,因此最终结果是以最后一个为准的去重数组。

JavaScript 对象数组去重:以最后一个元素为准

原文地址: https://www.cveoy.top/t/topic/mNGf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录