首页 > 解决方案 > 如何从角度数组中的重复项中挑选一个对象?

问题描述

所以我在这里有一个示例数组。来自数据库的数据

我需要的是创建一个新数组,其中只包含每个名称中的一个。示例 1 nucycle 对象和 1 个 beby 对象,但两个对象的 customer_id=1。类别和其他无关紧要。我尝试了一个 for 循环,在其中与之前的对象名称进行比较,如果匹配,则将被忽略。但是,如果安排更加随机,那将不起作用。我也可以使用一个计数器,它会在 2 次推入后停止推入,但这是固定的和静态的,因为我不知道将来会有多少个名字。有任何想法吗?

标签: angulartypescript

解决方案


您可以使用地图来实现这一点请参阅下面的代码段

function removeDuplicate(arrayOfObject){
  let store = new Map()
  
  return arrayOfObject.filter(obj=>{
  // If the item exist in the store already return false and do not add it to the new array
    if(store.get(obj.name) === obj.customer_id ){
      return false
    }  
    // If other wise, add it and return true
    store.set(obj.name, obj.customer_id)
    return true
  })
}


推荐阅读