lodash 简介

186 阅读2分钟

①Lodash 含有 Array, Collection, Date, Function, Lang, Math, Number, Object, String 等多个功能模块,总共几百个功能函数。官方文档上以字典顺序排序,不容易总结记忆。这里总结一些 ES6 不容易实现的实用功能;
②字符串操作:
1、大小写转换:
_.upperFirst (string):第一个字母大写,其他的小写;
2、命名风格转换:
_.snakeCase ("fooBar"):单词之间用下划线连接;
_.camelCase ("Foo Bar"):驼峰写法;
_.kebabCase ("__FOO_BAR__"):单词之间使用横线连接;
③算术与数字:
1、算术运算:
_.sum (array):求和;
_.mean (array):求平均值;
2、数字操作:
1、_.random (lower=0,upper=1 [,floating]):返回一个 [lower,upper] 之间的随机数,如果 lower 和 upper 中有浮点数,或者 floating 为 true,返回浮点数,否则,返回整数;
2、_.range ( [start=0,] end,step=1):生成一个范围数组;
3、_.clamp (number, [lower=0,] upper):把一个数字就近限制在某个区间内;
④数组操作:
1、集合运算:
_.intersection (...arrays):交集;
_.union (...arrays):并集;
_.difference (array, ...operands):集合差,A - B 表示属于集合 A 但不属于集合 B 的元素集合;
2、分片 / 分区 / 分组:
_.chunk (array [ , size=1]):分片(chunk)是指把数组中的每 n 个元素分为一组(一片),如果不能整除,最后剩下的元素单独一片;
_.partition (collection [ , predicate]):分区(partition)是利用一个断言函数迭代每个元素,根据断言的 true 和 false,把元素分成两组;
_.groupBy (collection [ , iteratee]):分组 (group) 则是用一个函数遍历每个元素,得到的结果作为该元素所在组的 key,相同 key 元素归为同一组;
3、有序数组查找 / 去重:
_.sortedIndex (array, value):返回插入该元素后仍然能保持数组有序的第一个下标位置;
_.sortedUniq (array):对有序数组去重;
4、取样 / 打乱 / 计数:
_.sample (collection):随机返回一个元素;
_.shuffle (collection):打乱数组;
_.countBy (collection [ , iteratee]):计数;
⑤对象操作:
1、对象转换:_.clone (value):克隆;
_.assign (object, ...sources):同 Object.assign, 把 sources 对象中的自有属性赋值到 object 中;
_.defaults (object, ...sources):当 object 中不存在值时,才会赋值,经常用于合并默认值;
2、遍历对象:
_.forOwn (object, iteratee):遍历自有属性,类似 for...in 加 hasOwnProperty 判断;
_.findKey (object, iteratee):查找符合条件的 key,类似数组的 findIndex;
3、安全的 get/set:_.get (object,path [ , defaultValue]):当 path 对应的值不存在时,返回 undefined,而不是报错;
⑥函数操作:
1、控制函数执行:
_.debounce (func [ , wait=0] [ , options={}]):防抖;
_.throttle (func [ , wait=0] [ , options={}]):节流;
2、函数参数转换:
_.curry (func, (arity = func.length)):柯里化;
⑦通用工具:
_.uniqueId ((prefix = "")):生成一个唯一 ID
(参考:mp.weixin.qq.com/s/I4yfSto6B…