uniq 【数组去重】
描述
数组去重
# 1.示例
import { uniq } from 'sf-utils2'
uniq([11, 22, 33, 33, 22, 55]) // [11, 22, 33, 55]
// 对象去重
const arr = [
{ id: 1, name: '蔡徐坤' },
{ id: 2, name: '周杰伦' },
{ id: 1, name: '蔡徐坤' },
{ id: 3, name: '傻逼' },
,
{ id: 3, name: '傻逼' }
]
uniq(arr, 'id') // [{id: 1, name: '蔡徐坤'}, {id: 2, name: '周杰伦'}, {id: 3, name: '傻逼'}]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2.入参说明
| 参数 | 说明 | 类型 | 是否必填 |
|---|---|---|---|
| val | 值 | Array | -------- |
# 3.源码
import arrayToObj from '@/array/arrayToObj'
/**
* 数组去重
* @param list
* @param {String} PK 如果传入是 Object[] 数据结构,以PK为主键去重
* @return {*[]}
*/
export const uniq = (list = [], PK) => {
if (PK) {
const listObj = arrayToObj(list, PK)
return [...new Set(list.map(v => v[PK]))].map(v => listObj[v])
}
return [...new Set(list)]
}
export default uniq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上次更新: 2023/06/24, 19:35:48