javascript 查找[object,object]中的重复元素

查看:78
本文介绍了javascript 查找[object,object]中的重复元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

请问一下下面的两个数组如何才能找到相关的位置
情况一

const array1=[{from:0,to:1},{from:1,to:2},{from:1,to:2},{from:2,to:3}]

上面的array1数组如何才能快速找到重复元素{from:1,to:2}的位置。

情况二

const array2=[{from:0,to:1},{from:1,to:2},{from:2,to:3},{from:3,to:2}]

上面的array2数组如何找到from与to互相颠倒{from:2,to:3},{from:3,to:2}的元素位置

原生javascript怎么样才能得到期待的结果。lodash中有什么便捷的方法吗?

解决方案

相对简单的结构,可以通过一定的算法,把每个元素计算成一个字符串来作为比较因子,比如

const list = array.map(t => ({
    key: `from_${t.from}:to_$(t.to}`,
    data: t
}));

如果不在乎是 from 还是 to,在只乎连接了两个点,可以去掉字符串中的 fromto,比如

   // ...
   key: [t.from, t.to].sort().join("_")

注意这里先进行了排序,是为了保证顺序一致,方便做一致性比较(比如 from 1 to 2 和 from 2 to 1 都会生成相同的 key:1_2)。

剩下的就是根据 key 去重再重新组合 data 就好了

这篇关于javascript 查找[object,object]中的重复元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆