Skip to content

数组工具 ​

从 @axewo/fin-core/utils 或根入口导入。对象的选取工具 pick、omit 也在此模块导出。

API ​

函数用途
groupBy(list, key) / groupByFn(list, fn)按字段或回调结果分组
uniqueBy(list, key) / uniqueByFn(list, fn)按字段或回调结果去重,保留首项
pick(object, keys) / omit(object, keys)选取或排除指定字段
difference(a, b) / intersection(a, b) / union(...lists)差集、交集、并集,按值或对象引用比较
compact(list)过滤所有 falsy 值,包括 0、false、空字符串、null、undefined、NaN
chunk(list, size)按正整数 size 分块,非法 size 抛出 RangeError
flatten(list) / flatDeep(list)展开一层或递归展开
partition(list, predicate)分成匹配与不匹配两组
maxBy(list, fn) / minBy(list, fn)按数值回调寻找最大、最小项,空数组返回 undefined
sum(numbers) / sumBy(list, fn)数字求和;金额精度计算使用金额工具
sortBy(list, keyOrFn) / sortByDesc(list, keyOrFn)返回排序后的新数组
isEmpty(list)判断 null、undefined 或空数组
ts
import { groupBy, uniqueBy, sortBy, sumBy } from '@axewo/fin-core/utils'

const orders = [
  { id: 'a', status: 'draft', amount: 20 },
  { id: 'b', status: 'draft', amount: 10 },
]
const grouped = groupBy(orders, 'status')
const unique = uniqueBy(orders, 'id')
const sorted = sortBy(orders, 'amount')
const total = sumBy(orders, order => order.amount)

树转换使用 listToTree / treeToList,当前没有 arrayToTree、treeToArray 或通用 unique 导出。