0
点赞
收藏
分享

微信扫一扫

为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)

時小白 2024-04-24 阅读 10

在前端开发过程中,如果涉及到对象数组去重,我们首先要明确重复的标准,应为数组的每一项都是一个对象,而对象引用是基于内存地址的,就算是两个对象拥有两个相同的属性和值,它们也是不同的引用,所以我们确定以哪个属性值作为条件,来进行筛选,比如ID。

先封装一个去重的方法:

function removeDuplicateObjectsById(array, idKey) {
  const seen = new Set();
  const uniqueArray = array.filter(obj => {
      return !seen.has(obj[idKey]) && seen.add(obj[idKey]);
  });
  return uniqueArray;
}

如果数组的两项的ID相同,则删除掉。

有一种情况是,如果我们需要对对象所有属性进行比较,那么需要将对象转为字符串,然后再比较:

function removeDuplicateObjectsById(array) {
  const seen = new Set();
  const uniqueArray = array.filter(obj => {
      return !seen.has(JSON.stringify(obj)) && seen.add(JSON.stringify(obj));
  });
  return uniqueArray;
}
const objects = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, name: 'Alice' }, // 与第一个对象重复(基于id)
  { id: 3, name: 'David' }
];

console.log(removeDuplicateObjectsById(objects))

在objects这个数组里面,第一项和第三项是相同的,所以删除第三项。

如果单纯对一个数组进行去重操作的话,也可以使用上面这个去重函数。

举报

相关推荐

0 条评论