gpt4 book ai didi

javascript - 比较数组中的数组

转载 作者:行者123 更新时间:2023-11-29 17:41:07 25 4
gpt4 key购买 nike

我正在寻找一种方法来比较数组中的数组。

let small = [[1, 3], [2, 2], [2, 3], [3, 0]];

let large = [[1, 0], [1, 1], [2, 0], [2, 2], [2, 5], [3, 0], [3, 2]];

例如,我希望能够找出 small 中的数组有多少可以在 large 中找到。一些函数,给定上面的数组作为参数,将返回 2,因为 [2, 2][3, 0] 来自 smalllarge 中找到。

你会怎么做?

最佳答案

您可以将其中一个数组转换为 Set的哈希值,而不是 filter使用集合的第二个数组:

const small = [[1, 3], [2, 2], [2, 3], [3, 0]];

const large = [[1, 0], [1, 1], [2, 0], [2, 2], [2, 5], [3, 0], [3, 2]];

const containsCount = (arr1, arr2, hashFn) => {
const arr1Hash = new Set(arr1.map(hashFn));

return arr2.filter(s => arr1Hash.has(hashFn(s))).length;
}

const result = containsCount(small, large, ([a, b]) => `${a}-${b}`);

console.log(result);

关于javascript - 比较数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53110967/

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