请问一下下面的两个数组如何才能找到相关的位置
情况一
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中有什么便捷的方法吗?
相对简单的结构,可以通过一定的算法,把每个元素计算成一个字符串来作为比较因子,比如
如果不在乎是 from 还是 to,在只乎连接了两个点,可以去掉字符串中的
from
和to
,比如注意这里先进行了排序,是为了保证顺序一致,方便做一致性比较(比如 from 1 to 2 和 from 2 to 1 都会生成相同的 key:
1_2
)。剩下的就是根据 key 去重再重新组合 data 就好了