@liuli-util/array
Install using
npm install @liuli-util/array
You can access these members by importing the module:
import { member } from '@liuli-util/array';
diffBy
function diffBy
<
L
,
R
>
(
left
:
L[]
,
right
:
R[]
,
kFn
:
(item: L | R, index: number, arr: L[] | R[]) => any
= (v) => v
)
:
ArrayDiff<L, R>
比较两个数组的差异
@param:
left 第一个数组
@param:
right 第二个数组
@param:
kFn 每个元素的唯一标识产生函数
@returns:
比较的差异结果
ArrayDiff
interface
ArrayDiff
<
L
,
R
>
数组之间的差异结果对象结构接口 left 第一个数组独有的元素列表 right 第二个数组独有的元素列表 common 两个数组共有的元素列表。注意: 这里的元素实质上是从第一个集合获取的
left
Type:
L[]
No docs provided
right
Type:
R[]
No docs provided
common
Type:
L[]
No docs provided
groupBy
function
<
T
,
K
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
)
:
Map<K, T[]>
将数组按照指定条件分组
@param:
arr 数组
@param:
kFn 元素分组的唯一标识函数,会将返回 key 作为键,将相同 key 的元素归类为一个数组作为值 注:这里不再包含 reduce 的功能,仅实现分组功能
function
<
T
,
K
,
R
: any[]
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
,
vFn
:
(res: R, item: T, index: number, arr: T[]) => R
)
:
Map<K, R>
将数组按照指定条件分组
@param:
arr 要进行分组的数组
@param:
kFn 元素分组的唯一标识函数,会将返回 key 作为键,将相同 key 的元素归类为一个数组作为值
@param:
vFn 元素分组的值处理的函数。第一个参数是累计值,第二个参数是当前正在迭代的元素,如果你使用过 Array#reduce
函数的话应该对此很熟悉
@returns:
元素标识 => 数组映射 Map
function groupBy
<
T
,
K
,
R
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
,
vFn
:
(res: R[], item: T, index: number, arr: T[]) => R[]
= (res, item) => {
res.push(item as any)
return res
}
)
:
Map<K, R[]>
No docs provided
segmentation
function segmentation
<
T
>
(
arr
:
T[]
,
num
:
number
)
:
T[][]
数组按照指定长度进行分段为二维数组 注: num 必须要大于 1
@param:
arr 要进行分段的数组
@param:
num 每段的长度
@returns:
分段后的二维数组
swap
function swap
<
T
>
(
arr
:
T[]
,
i
:
number
,
k
:
number
)
:
T[]
交换数组两个位置的值
@param:
arr 数组
@param:
i 第一个下标
@param:
k 第二个下标
@returns:
交换后的数组
uniqueBy
function uniqueBy
<
T
,
K
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
= (v) => v as any
)
:
T[]
js 的数组去重方法
@param:
arr 要进行去重的数组
@param:
kFn 唯一标识元素的方法,默认返回自身
@returns:
进行去重操作之后得到的新的数组 (原数组并未改变)
arrayToMap
function
<
T
,
K
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
)
:
Map<K, T>
No docs provided
function
<
T
,
K
,
V
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
,
vFn
:
(item: T, index: number, arr: T[]) => V
)
:
Map<K, V>
No docs provided
function arrayToMap
<
T
,
K
,
V
>
(
arr
:
T[]
,
kFn
:
(item: T, index: number, arr: T[]) => K
,
vFn
:
(item: T, index: number, arr: T[]) => V
= (v) => v as any
)
:
Map<K, V>
将数组映射为 Map
@param:
arr 数组
@param:
kFn 产生 Map 元素唯一标识的函数
@param:
vFn 产生 Map 值的函数,默认为返回数组的元素
@returns:
映射产生的 map 集合
sortBy
function
<
T
: CompareType
>
(
i
:
T[]
,
kFn
?
:
(item: T) => CompareType
)
:
T[]
No docs provided
function
<
T
: Exclude<any, CompareType>
>
(
i
:
T[]
,
kFn
:
(item: T) => CompareType
)
:
T[]
No docs provided
function sortBy
<
T
>
(
arr
:
T[]
,
kFn
:
(item: T) => CompareType
= (v) => (v as unknown) as CompareType
)
:
T[]
对数组进行排序
@param:
arr 需要排序的数组
@param:
kFn 比较函数,默认是原值