2019-05-10
描述
两个数组中的每个元素通过使用提供的函数所返回的返回值相同时,则把该元素放入结果列表中。
提示
- 使用
Set
创建一个新集合,该集合为b
数组中的元素使用提供的函数后的结果 - 对
a
数组使用Array.prototype.filter()
来过滤掉集合中不存在的元素
代码
const intersectionBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return a.filter(x => s.has(fn(x)));
};
示例
获取两个数组中下取整后相同的元素:
intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [2.1]