碎片时间学编程「276]:根据函数过滤唯一数组值

根据函数过滤唯一数组值
根据提供的比较器函数,创建一个过滤掉唯一值的数组。
基于比较器函数,使用 Array.prototype.filter() 和 Array.prototype.every() 方法创建仅包含非唯一值的数组 fn。
比较器函数有四个参数:被比较的两个元素的值和它们的索引。
JavaScript
const filterUniqueBy = (arr, fn) =>
arr.filter((v, i) => arr.some((x, j) => (i !== j) === fn(v, x, i, j)));
示例:
filterUniqueBy(
[
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 3, value: 'd' },
{ id: 0, value: 'e' }
],
(a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 0, value: 'e' } ]
更多内容请访问我的网站:https://www.icoderoad.com