Skip to content

unique

数组去重。

基本用法

传入一个数组,使用SameValueZero进行比较,返回去重后的数组。如果是对象数组,可以使用第二个参数指定对象的key,也可传入函数进行自定义对比。

ts
import { unique } from '@renzp/utils'

unique([1, 1, 2, 3, 4, 3]); // [1, 2, 3, 4]
unique(
 [
   { a: 1, b: 1 },
   { a: 2, b: 1 },
   { a: 3, b: 1 },
   { a: 1, b: 1 },
 ],
 { filter: 'a' }
); // [{ a: 1, b: 1 }, { a: 2, b: 1 }, { a: 3, b: 1 }]
unique(
  [
    { a: 1, b: 1 },
    { a: 2, b: 1 },
    { a: 3, b: 1 },
    { a: 1, b: 1 },
  ],
  { filter: (target, v) => target.a === v.a && target.b === v.b },
); // [{ a: 1, b: 1 }, { a: 2, b: 1 }, { a: 3, b: 1 }]

参数

参数说明类型默认值是否必填
list要去重的数组Array<T>-
options配置FilterOptions<T>-

options

参数说明类型默认值是否必填
filter过滤key或函数Filter<T>-
ts
export type Filter<T> =
  | keyof T
  | Array<keyof T>
  | ((target: T, v: T) => boolean)

返回

参数说明类型
list去重后的数组Array<T>