起初我想吐槽的后来发现这个东西有点屌就闷着头开始学习
(但是我还是要吐槽一下这个东西的官方文档,中文文档里你就不能用个汉字么)
官方介绍 :是一个一致性、模块化、高性能的 JavaScript 实用工具库。
它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,其中部分是目前ECMAScript尚未制订的规范,但同时被业界所认可的辅助函数(思考一下,这东西用久了我会不会把原生的忘掉???)
https://www.lodashjs.com/ 官方链接
学习中ing...
需要学习的概念 节流 延迟 柯里化 函数式编程 链式调用? Iteratee
整体学完的话应该会需要很多时间,所以我准备先给常用的 数组 对象 字符串方法学学
Lodash的分类 :
Array (数组)
适合于数组类型,比如填充数据、查找元素、数组分片等操作
_.chunk(array, [size=1])
数组切割 array 传入的数组,size 几个数据分一个
将数组 两两切割 返回一个新的数组
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
不够size的参数时 单独分一组
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
_.compact(array)类似一个过滤器
删除了所有falsey值的数组,值false
,null
, 0
,""
,undefined
,和NaN
是falsey
_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
_.concat(array, [values])数组连接
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
Collocation(数组 对象 字符串)
适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等操作
Object(对象类型)
适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等操作
String(字符串)
适用于字符串类型
Math(数字运算)
使用与数值类型,常用于执行数学运算
Number(生成随机数)
适用于生成随机数,比较数值与数值区间的关系
Lang(类型转换,执行类型)
普遍适用于各种类型,常用于执行类型判断和类型转换
Function(函数,节流延迟缓存 设置钩子)
适用于函数类型,比如节流、延迟、缓存、设置钩子等操作
Seq(链式调用?)
常用于创建链式调用,提高执行性能(惰性计算)
lodash/fp (函数式编程)
模块提供了更接近函数式编程的开发方法,其内部的函数经过包装,具有immutable、auto-curried、iteratee-first、data-last(官方介绍)等特点。
Fixed Arity(固化参数个数)
固化参数个数,便于柯里化
Rearragned Arguments(调整参数位置)
重新调整参数位置,便于函数之间的聚合
Capped Iteratee Argument(封装Iteratee参数)
封装Iteratee参数