@zstings/utils
Version:
javascript、typescript 工具函数库 文档地址 [utils 文档](https://zstings.github.io/utils/)
37 lines (36 loc) • 1.29 kB
TypeScript
/**
* 数组去重
* @param array 数组
* @param option
* @param option.key 数组对象去重时指定的键
* @param option.deep 是否启用引用类型的去重 默认true, 如果指定了key, deep 强制为 true
* @return 新的数组
* @throws array参数需要Array array参数错误时触发
* @throws key参数需要String key存在且不是字符串时触发
* @throws key指定的属性不存在 key在数组对象的对象中找不到次属性时触发
* @category 数组Array
* @example
* ```ts
* unique([1, 2, 1]) => [1, 2]
* ```
* @example
* 数组对象去重-指定key
* ```ts
* unique([{id: 1, name: '1'}, {id: 2, name: '2'}, {id: 1, name: '1'}], {key: 'id'})
* // => [{id: 1, name: '1'}, {id: 2, name: '2'}]
* ```
* 不指定key,默认启用引用类型的去重
* ```ts
* unique([{id: 1, name: '1'}, {id: 1, name: '2'}, {id: 1, name: '1'}])
* // => [{id: 1, name: '1'}, {id: 1, name: '2'}]
* ```
* 不指定key,关闭引用类型的去重
* ```ts
* unique([1, 2, 1, {id: 1, name: '1'}, {id: 1, name: '2'}, {id: 1, name: '1'}], {deep: false})
* // => [1, 2, {id: 1, name: '1'}, {id: 1, name: '2'}, {id: 1, name: '1'}]
* ```
*/
export default function unique(array: any[], option?: {
key?: string;
deep?: boolean;
}): any[];