gpt4 book ai didi

javascript - 如何使用 lodash 比较两个数组(顺序很重要)

转载 作者:行者123 更新时间:2023-12-05 02:14:59 26 4
gpt4 key购买 nike

var arr1=[3,4,5,6,7,1,9];
var arr2=[1,3,4,6,7,5,9];

我想比较 arr2 和 arr1。但是方法 difference()intersection() 似乎只能查找两个数组是否具有相同的元素。我想逐点比较这两个数组,如 arr1[0] 到 arr2[0]、arr1[1] 到 arr2[1]。它应该显示:

intersection: 6,7,9
difference: 1,3,4,5

我怎样才能做到这一点?

最佳答案

您可以在 lodash 中执行此操作,方法是压缩两个数组、过滤,然后取每对数组的最后一项。交集的比较器是该对相等。差异的比较器是该对不相等。

const arr1 = [3,4,5,6,7,1,9];
const arr2 = [1,3,4,6,7,5,9];

const compare = (comperator) => (arr1, arr2) =>
_.zip(arr1, arr2)
.filter(comperator)
.map(_.last);

const eq = _.spread(_.eq);

const intersection = compare(eq);

const difference = compare(_.negate(eq));

console.log('intersection ', intersection(arr1, arr2));
console.log('difference ', difference(arr1, arr2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

关于javascript - 如何使用 lodash 比较两个数组(顺序很重要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52824520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com