2019-06-24
描述
返回两个数组中的所有元素,且进过提供的对比函数比对后相等的元素只能存在一个。
提示
- 使用
Array.prototype.findIndex()
过滤出对比函数中不存在的值 - 创建一个
Set
,包含数组a
中的所有元素及步骤一中的结果 - 将最终的
Set
使用Array.from
转换为数组并返回
代码
const unionWith = (a, b, comp) =>
Array.from(new Set([...a, ...b.filter(x => a.findIndex(y => comp(x, y)) === -1)]));
示例
返回两个数组中四舍五入后唯一的元素:
unionWith([1, 1.2, 1.5, 3, 0], [1.9, 3, 0, 3.9], (a, b) => Math.round(a) === Math.round(b)); // [1, 1.2, 1.5, 3, 0, 3.9]
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于