如何解决如何从二维数组中获取唯一值,从而删除包含另一个数组中元素的重复项
我这样排列
const data=[ [aa,bb,cc],[aa,dd,ee,ff,cc]]
和另一个类似的数组
const array2=[bb,ee]
我想将其转换成这样:
const data=[ [aa,cc] ]
我尝试过这样:
const unique = [...data.reduce((cache,curr) => {
let key = JSON.stringify(curr);
if (!cache.has(key)) cache.set(key,curr)
return cache;
},new Map()).values()]
但是它不能正常工作。它也从数组2提供了值
P.S。谢谢。
解决方法
您可以使用Set
进行过滤。
const
data = [['aa','bb','cc'],['aa','dd','ee','ff','cc']],include = ['bb','ee'],unique = data
.filter(a => a.some(v => include.includes(v)))
.filter(
(s => a =>
(j => !s.has(j) && s.add(j))
(JSON.stringify(a))
)
(new Set)
);
console.log(unique);
.as-console-wrapper { max-height: 100% !important; top: 0; }
,
Ciao,您可以使用areEqual
函数来确定data
中的元素是否相等,以及使用isValid
函数来验证要放入结果的元素是否有效(与{ {1}}),例如以下示例:
array2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。