JS数组去重,数组里的元素是对象,根据指定对象key名去重

来源:网络 文章列表 2024-01-25 8
如果你有一个JavaScript数组,其中包含对象,并且你想根据对象的某个特定键(例如 keyName)去重,同时使用后面的数据替换前面的重复数据,你可以使用 reduce 函数。 下面是一个示例代码,说

如果你有一个JavaScript数组,其中包含对象,并且你想根据对象的某个特定键(例如 keyName)去重,同时使用后面的数据替换前面的重复数据,你可以使用 reduce 函数。

下面是一个示例代码,说明如何根据指定的对象键去重,并使用后面的数据替换前面的数据:

function dedupeByKey(array, keyName) {  
  return array.reduce((result, currentItem) => {  
    const existingIndex = result.findIndex(item => item[keyName] === currentItem[keyName]);  
    if (existingIndex === -1) {  
      // 如果当前对象不在结果数组中,将其添加到数组中  
      result.push(currentItem);  
    } else {  
      // 如果当前对象已经存在于结果数组中,使用后面的数据替换前面的数据  
      result[existingIndex] = currentItem;  
    }  
    return result;  
  }, []);  
}  
  
// 示例对象数组  
const array = [  
  { id: 1, name: 'A1' },  
  { id: 2, name: 'A2' },  
  { id: 3, name: 'A3' },  
  { id: 2, name: 'B2' }, // 使用后面的数据替换前面的数据  
  { id: 3, name: 'B3' }, // 使用后面的数据替换前面的数据  
  { id: 4, name: 'B4' }  
];  
  
const deduplicatedArray = dedupeByKey(array, 'id');  
console.log(deduplicatedArray);

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接