UNPKG

jcommon

Version:

JavaScript 常用纯函数工具库

170 lines (169 loc) 4.93 kB
/** * @category Array */ export type DoubleRankingOption = { /** * 一级过滤和排序的key */ filterRuleKey?: string; /** * 一级排序规则 */ rule?: string[]; /** * 二级正常排序的key */ sortKey?: string; sortOrder?: number; }; /** * @category Array * @description: 处理复杂数组的两级排序(一级按照自定义顺序,二级可正序倒序) * @author: wuxh * @Date: 2020-05-06 11:37:17 * @param {arr} 需要处理的数组 * @param {options} 额外参数 * @return: {Array} 排序后的数组 * ``` * doubleRanking( * [ * {education: '本科', age: 26}, * {education: '小学', age: 25}, * {education: '本科', age: 24}, * {education: '小学', age: 23} * ], * { * filterRuleKey: 'education', * rule: ['小学', '本科'], * sortKey: 'age', * sortOrder: 1 * } * ) * => [ * {education: '小学', age: 24}, * {education: '小学', age: 26} * {education: '本科', age: 23}, * {education: '本科', age: 25}, * ] * ``` */ export declare const doubleRanking: (arr: { [key: string]: any; }[], options: DoubleRankingOption) => any[]; /** * @category Array * @description: 产生随机数据 * @author: wxingheng * @Date: 2022-10-12 11:08:50 * @param {number} num 数量 * @param {Array} arr 每个元素对象的keys * @return {*} ``` randomData(2, ['name', 'value']) => [{"name":"name323","value":"value699"},{"name":"name573","value":"value393"}] ``` */ export declare const randomData: (num: number, arr: Array<string>) => Array<any>; /** * @category Array * @description: 数值转对象 (常用于处理后台返回的枚举转换,工作中很常用) * @author: wuxh * @Date: 2020-05-06 11:51:49 * @param {object} arr 需要作为转换后对象的key需要转换的数组 * @param {string} key 需要作为转换后对象的key * @param {*} v 对象的value取值,默认是数组的每一个元素作为值 * @return: Object ``` const arr = arr = [{name: 111, value: 222},{name: 333, value:444}] arrByObj(arr, 'name') => {"111":{"name":111,"value":222},"333":{"name":333,"value":444}} arrByObj(arr, 'name', value) => {"111":222,"333":444} ``` */ export declare const arrByObj: (arr: { [key: string]: any; }[], key: string, v?: string) => { [key: string]: any; }; /** * @category Array * @description: 简单数组去重,Set 处理 * @author: wxingheng * @Date: 2022-10-12 11:16:32 * @param {string} arr * @return {*} ``` uniqueArray([1,1,1,1,1]) => [1]; uniqueArray([1,2,3,4,5]) => [1,2,3,4,5]; ``` */ export declare const uniqueArray: (arr: string | Iterable<any> | null | undefined) => any[]; /** * @category Array * @description: 数组交集 * @author: wxingheng * @Date: 2022-05-18 10:56:47 * @param {Iterable} a * @param {Iterable} b * @return {*} Array * ``` * difference([2,3,4,5], [1,2,3,4]) => [5, 1] ; * difference([1,2,3,4], [2,3,4,5]) => [1, 5]; * difference([1,2,3,4], [1,2,3,4]) => []; * difference([1,2,3,4], []) => [1, 2, 3, 4] * ``` */ export declare const difference: (a: Iterable<unknown> | null | undefined, b: Iterable<unknown> | null | undefined) => Array<any>; /** * @category Array * @description: 数组元素是否相同 * @author: wxingheng * @Date: 2022-05-18 10:56:04 * @param {any} arr1 * @param {any} arr2 * @return {*} ``` arrayCompare([2,3,4,5], [5,4,3,2]) => true ; arrayCompare([2,3,4,5], [5,4,3,2,1]) => false; arrayCompare([2,3,4,5], []) => true; arrayCompare([], [1,2,3,4]) => false; arrayCompare([1,2,3,4], []) => true; ``` */ export declare const arrayCompare: (arr1: any[], arr2: any[]) => boolean; /** * @category Array * @description: 数组排序的回调函数,用于sort方法,按照对象的某个属性进行中文排序 * @author: wxingheng * @Date: 2022-09-30 11:43:11 * @param {string} key 排序的属性 * @return {*} * ``` * arr.sort(sortCallBackChinese('name')) => [{name: '张三'}, {name: '李四'}] * ``` */ export declare const sortCallBackChinese: (key: string) => (a: any, b: any) => void; /** * @category Array * @description: * @author: wxingheng * @Date: 2022-09-30 11:45:04 * @param {string} key 对象的key * @param {boolean} desc 是否倒序, 默认是正序 * @return {*} * ``` * arr.sort(sortCallBackNumber('age')) => [{age: 18}, {age: 20}] * arr.sort(sortCallBackNumber('age', true)) => [{age: 20}, {age: 18}] * ``` */ export declare const sortCallBackTime: (key: string, desc?: boolean) => (a: any, b: any) => void; /** * @category Array * @description: reduce方法,用于数组对象的求和 * @author: wxingheng * @Date: 2022-09-30 11:51:39 * @param {string} key * @return {*} * ``` * arr.reduce(reduceSum('num'), 0) => 10 * ``` */ export declare const reduceCallBackNumber: (key: string) => (acc: any, cur: any) => void;