“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,[点击查看活动详情] (s.juejin.cn/ds/jooSN7t "s.juejin.cn/ds/jooSN7t"…
lodash相关用法
import _ from "lodash";
1.将数组切割成不同长度的数组
/**
* @param array 需要处理的数组
* @param size 每个数组的长度
* @return 新数组
*/
const chunk = (array: Array<any>, size: number): Array<any> => {
return _.chunk(array, size);
};
2.过滤数组中的'假值' NaN,false, null,0, "", undefined
/**
* @param array
* @return 过滤掉假值的新数组
*/
const compact = (array: Array<any>): Array<any> => {
return _.compact(array);
};
3.数组拼接
/**
* @param array 被拼接的数组
* @param values (...) 拼接的值,number,string,array
* @return 连接后的新数组
*/
const concat = (array: Array<any>, values: number | string | Array<any>): Array<any> => {
return _.concat(array, values);
};
4.数组去重(创建一个新数组,这个数组中的值为array中不需要的值的展示)
/**
* @param array 要检查的数组。
* @param values 排除的值。
* @return 返回一个过滤值后的新数组。
*/
const difference = (array: Array<any>, values: Array<any>): Array<any> => {
return _.difference(array, values);
};
5.数组对象去重
/**
* @param array 要检查的数组。
* @param values 排除的值。
* @param comparator 调用每个元素。
* @return 返回一个过滤值后的新数组。
*/
const differenceWith = (array: Array<any>, values: Array<any>, fn: any): Array<any> => {
return _.differenceWith(array, values, lodash.isEqual);
};
6.去掉数组前面第n个元素
/**
* @param array 要查询的数组。
* @param n 要去除的元素个数(默认1)。
* @return 返回数组剩余的。
*/
const drop = (array: Array<any>, n: number): Array<any> => {
return _.drop(array, n);
};
7.去掉数组后面第n个元素
/**
* @param array 要查询的数组。
* @param n 要去除的元素个数(默认1)。
* @return 返回数组剩余的。
*/
const dropRight = (array: Array<any>, n: number): Array<any> => {
return _.dropRight(array, n);
};
8.N次循环
/**
* @param value 次数
* @param fn 函数
* @return 调用结果的数组
*/
const times = (value: number, fn: any): Array<any> => {
return _.times(value, fn);
};
9.将array递归为一维数组。
/**
* @param array 需要处理的数组。
* @return 返回一个的新一维数组。
*/
const flattenDeep = (array: Array<any>): Array<any> => {
return _.flattenDeep(array);
};
10.根据 depth 递归减少 array 的嵌套层级
/**
* @param array 需要减少嵌套层级的数组。
* @param depth 最多减少的嵌套层级数。
* @return 返回减少嵌套层级后的新数组。
*/
const flattenDepth = (array: Array<any>, depth: number): Array<any> => {
return _.flattenDepth(array, depth);
};
11.获取array中的最后一个元素。
/**
* @param array 要检索的数组。
* @return 返回array中的最后一个元素
*/
const last = (array: Array<any>): string | number => {
return _.last(array);
};
12.获取数组 array 的第一个元素。
/**
* @param array 要检索的数组。
* @return 返回数组 array的第一个元素。
*/
const head = (array: Array<any>): string | number => {
return _.head(array);
};
13.数组并集
/**
* @param [arrays] *(...Array)* : 要检查的数组。
* @return 返回一个新的联合数组。
*/
const union = (array: Array<any>): string | number => {
return _.union(array);
};
14.数组key,value值的匹对
/**
* @param props 属性标识符(属性名)。
* @param values 值作为相应的属性值。
* @return 返回一个新的对象。
*/
const zipObject = (array: props<any>, values: Array<any>): string | number => {
return _.zipObject(props, values);
};
_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }
export default <ArrayInterface>{
chunk,
compact,
concat,
difference,
differenceWith,
drop,
dropRight,
times,
flattenDeep,
flattenDepth,
last,
head,
union,
zipObject
};