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

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