.compact(array)
创建一个新数组,包含原数组中所有的非假值元素。例如 false , null , 0 , "" , undefined , 和 NaN 都是被认为是“假值”。
不修改原数组,返回过滤掉假值的新数组。
_.difference(array, [values])
创建一个新数组,这个数组中的值,为第一个参数排除了给定数组中的值。结果值的顺序是由第一个数组中的顺序确定。
不像 _.pullAll,该方法不修改原数组,返回一个过滤值后的新数组。
_.union([arrays])
数组的并集,按顺序返回,返回数组的元素是唯一的。
返回一个新的联合数组。
_.uniq(array)
创建一个去重后的数组副本(注:即数组去重)。
不修改原数组,返回新的去重后的数组。
_.zip([arrays])
创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推(注:即数组转置)。
返回分组元素的新数组。
_.zipObject([props=[]], [values=[]])
它接受2个数组,第一个数组中的值作为属性名,第二个数组中的值作为相应的属性值(注:即将两个数组用键值对关联)。
返回一个新的对象。
_.last(array)
获取数组中最后一个元素
_.pick(object, [props])
_.omit(object, [props])
反向版 [ _.pick ]这个方法一个对象,这个对象由忽略属性之外的 object 自身和继承的可枚举属性组成。(可以理解为删除 object 对象的属性)。
.filter(collection, [predicate= .identity])
遍历 collection(集合)元素,返回 predicate(断言函数)返回真值 的所有元素的数组。 predicate(断言函数)调用三个参数:(value, index|key, collection)。
创建一个集合对象,对象的键是经过迭代函数( iteratee )执行处理集合中每个元素后返回的结果,每个键对应的值负责生成键的元素组成的数组。
返回一个新的集合对象。
对集合通过迭代函数来进行排序,若没指定 orders ,所有值以升序排序。 否则,指定为 desc 降序,或者指定为 asc 升序。
返回排序后的新数组。
_.once(func)
创建一个只能调用 func 一次的函数。 重复调用返回第一次调用的结果。 func 调用时, this 绑定到创建的函数,并传入对应参数。
_.throttle(func, [wait=0], [options={}])
创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
_.wrap(value, [wrapper=identity])
创建一个函数。提供的 value 包装在 wrapper 函数的第一个参数里。 任何附加的参数都提供给 wrapper 函数。 被调用时 this 绑定在创建的函数上。
<<模块lodash的作用>>
Lodash是一个内部封装了诸多对字符串、数组、对象等常见的数据类型的处理函数的一套工具库
Lodash提供的辅助函数主要分为以下几类
---Array,适用于数组类型,比如填充数据、查找元素、数组分片等 *** 作
---Collection,适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等 *** 作
---Function,适用于函数类型,比如节流、延迟、缓存、设置钩子等 *** 作
---Lang,普遍适用于各种类型,常用于执行类型判断和类型转换
---Math,适用于数值类型,常用于执行数学计算
---Number,适用于生成随机数,比较数值与数值区间的关系
---Object,适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等 *** 作
---Seq,常用于创建链式调用,提高执行性能
---String,适用于字符串类型
lodash主要使用了延迟计算,使得其性能大大提升,延迟计算意味着在我们的链式方法在显示或者隐藏式的value()调用之前式不会执行的。由于这种执行的延后,因此lodash可以进行shortcut fusion这样的优化,通过合并链式iteratee大大降低迭代次数。从而大大提升性能
//什么是shortcut fusion??
例如
这里只是一串方法链,如果没有显式的调用value方法,使其立即执行的话,将会得到LodashWrapper的延迟表达式,如下
因为延迟表达式的存在,我们可以多次增加方法链,但是并不会执行,所以不会存在性能上的问题,当我们最后需要使用的时候,使用value显示立即执行即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)