reactjs - 如何根据两列过滤 React 中的数据集以仅获取唯一的数据组合?
问题描述
我正在尝试过滤以下数据集以创建一个仅包含基于版本和名称的唯一值的数据集。
Data = [{Id: 1, Version: "set1", Name: "apple", Location: "US"},
{Id: 2, Version: "set1", Name: "apple", Location: "US"},
{Id: 3, Version: "set2", Name: "apple", Location: "US"},
{Id: 4, Version: "set1", Name: "banana", Location: "GER"},
{Id: 5, Version: "set1", Name: "banana", Location: "GER"},
{Id: 6, Version: "set3", Name: "cake", Location: "UK"},
{Id: 7, Version: "set3", Name: "cake", Location: "UK"},
{Id: 8, Version: "set3", Name: "cake", Location: "UK}]
期望的结果:
Data = [{Id: 1, Version: "set1", Name: "apple", Location: "US"}
{Id: 2, Version: "set2", Name: "apple", Location: "US"},
{Id: 3, Version: "set1", Name: "banana", Location: "GER"},
{Id: 4, Version: "set3", Name: "cake", Location: "UK"}]
解决方案
const Data = [{Id: 1, Version: "set1", Name: "apple", Location: "US"},
{Id: 2, Version: "set1", Name: "apple", Location: "US"},
{Id: 3, Version: "set2", Name: "apple", Location: "US"},
{Id: 4, Version: "set1", Name: "banana", Location: "GER"},
{Id: 5, Version: "set1", Name: "banana", Location: "GER"},
{Id: 6, Version: "set3", Name: "cake", Location: "UK"},
{Id: 7, Version: "set3", Name: "cake", Location: "UK"},
{Id: 8, Version: "set3", Name: "cake", Location: "UK"}]
const lookup = []
const filtered = Data.map(d => {
if(lookup.includes(d.Version+d.Name)){
return null
}else{
lookup.push(d.Version+d.Name)
return d
}
}).filter(data => data !== null)
console.log(filtered)
推荐阅读
- python - Pyspark 从 kafkaDirectStream 到 Postgresql
- google-apps-script - 有没有办法在 Google 帐户级别创建 Google Apps 触发器,而不是特定于一个表单?
- html - 为什么在尝试创建带有品牌徽标的导航栏时,品牌徽标会将其余部分向下推?
- html - :hover 在段落内的悬停链接上不起作用
- java - 将变量从 JFrame 传递到 JPanel?
- sapui5 - 在 Datepicker (SAP UI5) 上设置默认日期
- java - 未找到由接口定义的代理类
- c# - C#字典添加值数组
- javascript - 使用正则表达式和测试的字符串比较
- mongodb - 如何对单调键上的范围查询的集合进行分片?