简介
在本实验中,我们将探讨 JavaScript 中数组交集的概念。具体来说,我们将实现一个函数,该函数在对两个数组的每个元素应用提供的函数之后,返回这两个数组之间的共同元素。本实验将帮助你理解如何在 JavaScript 中使用高阶函数来操作数组并解决常见的编程问题。
在本实验中,我们将探讨 JavaScript 中数组交集的概念。具体来说,我们将实现一个函数,该函数在对两个数组的每个元素应用提供的函数之后,返回这两个数组之间的共同元素。本实验将帮助你理解如何在 JavaScript 中使用高阶函数来操作数组并解决常见的编程问题。
要在对两个数组的每个元素都应用一个函数之后找到它们的共同元素,请按以下步骤操作:
node。const intersectionBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return [...new Set(a)].filter((x) => s.has(fn(x)));
};
a 和 b 替换为你的数组,并将 fn 替换为你要应用于每个元素的函数。示例:
intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [2.1]
intersectionBy(
[{ title: "Apple" }, { title: "Orange" }],
[{ title: "Orange" }, { title: "Melon" }],
(x) => x.title
); // [{ title: 'Orange' }]
在第一个示例中,函数 Math.floor 应用于数组 [2.1, 1.2] 和 [2.3, 3.4],返回共同元素 [2.1]。
在第二个示例中,函数 x => x.title 应用于数组 [{ title: 'Apple' }, { title: 'Orange' }] 和 [{ title: 'Orange' }, { title: 'Melon' }],返回共同元素 [{ title: 'Orange' }]。
恭喜你!你已经完成了映射数组交集实验。你可以在 LabEx 中练习更多实验来提升你的技能。