angular - 如何从角度数组中的重复项中挑选一个对象?
问题描述
我需要的是创建一个新数组,其中只包含每个名称中的一个。示例 1 nucycle 对象和 1 个 beby 对象,但两个对象的 customer_id=1。类别和其他无关紧要。我尝试了一个 for 循环,在其中与之前的对象名称进行比较,如果匹配,则将被忽略。但是,如果安排更加随机,那将不起作用。我也可以使用一个计数器,它会在 2 次推入后停止推入,但这是固定的和静态的,因为我不知道将来会有多少个名字。有任何想法吗?
解决方案
您可以使用地图来实现这一点请参阅下面的代码段
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
})
}
推荐阅读
- git - 使用 Github 中主分支的所有提交创建新分支
- database - 有没有办法存储 python 类,以便我可以根据属性搜索它们?
- javascript - 处理可能具有或不具有嵌套对象的对象的最有效方法是什么?
- python - 将 CSV 保存在文档文件夹中
- javascript - 在 MongoDB 中登录并保存会话后 - 会话未定义
- c# - ManifestEmbeddedFileProvider() 在 Windows 上抛出异常
- node.js - Firebase 功能 - 部署失败
- autohotkey - 使用 AHK ControlClick,找不到所需的行为
- sql - SQL:导出多个变量
- sql - 具有一个或多个值的 case 语句