- reduce
传入一个原数组和函数
const uniqueElementsBy = (arr, fn) => {
return arr.reduce((pre, cur) => {
if (!pre.some(x => fn(x, cur))) pre.push(cur)
return pre
} , [])
}
// 使用,相等的就被去除
uniqueElementsBy(arr , (a,b) => a === b)
//
uniqueElementsBy(
[
{ 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: 0, value: 'a' }, { id: 1, value: 'b' }, { id: 2, value: 'c' } ]
- Set
[...new Set(arr)]
- 普通for循环