lodash方法

lodash:

var _ = require('lodash');
一、Array
1. _.chunk(array,size):将一个数组分割成多个size长度的区块,不足则剩余部分组成一个区块。(新数组)

2. _.compact(array):去除一个数组中的假值(undefined,null,false,'',0,NaN)。(新数组)

3. _.concat(array,[values]):将array与任何数组或值连接在一起(新数组)

4. _.difference(array,array1):从array中将array1中有的值过滤掉。(新数组)

5. _.differenceBy(array, [values], [iteratee=_.identity])同上,不过首先使用迭代器分别迭代array 和 values中的每个元素,
返回的值作为比较值。(新数组)

6. _.drop(array, n)去除array前面的n个元素,默认值为1。

7. _.dropRight(array,n)去除array尾部的n个元素。默认值为1。

8. _.dropRightWhile(array, [predicate=_.identity])去除array中从 predicate 返回假值开始到尾部的部分(从右侧开始)。
predicate 会传入3个参数: (value, index, array)。

9. _.dropWhile(array, [predicate=_.identity])去除array中从起点开始到 predicate 返回假值结束部分。

10. _.fill(array, value, [start=0], [end=array.length])使用 value 值来填充(替换) array,从start位置开始(默认0),
到end位置结束(但不包含end位置)。(原数组)

11. _.findIndex(array, [predicate=_.identity], [fromIndex=0])该方法类似_.find,
区别是该方法返回第一个通过 predicate 判断为真值的元素的索引值(index),而不是元素本身。

12._.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])
这个方式类似 _.findIndex, 区别是它是从右到左的迭代集合array中的元素。

13._.head(array)获取数组 array 的第一个元素。

14._.flatten(array)减少一级array嵌套深度

15._.flattenDeep(array)将array递归为一维数组

16._.flattenDepth(array, [depth=1])根据depth递归减少array的嵌套层级

17._.fromPairs(pairs)返回一个由键值对pairs构成的对象。

18._.indexOf(array, value, [fromIndex=0])查询数组中存在值得索引(默认起始位置0)

19._.initial(array)获取数组中除了最后一个元素之外的所有元素。

20._.intersection([arrays])返回一个包含所有传入数组交集元素的新数组。

21._.last(array)获取array中的最后一个元素。

22._.nth(array, [n=0])获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。

23._.pull(array, [values])移除数组array中所有和给定值相等的元素

24._.pullAll(array, values)这个方法类似 _.pull,区别是这个方法接收一个要移除值的数组。

25._.pullAt(array, [indexes])根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。

26._.remove(array, [predicate=_.identity])移除数组中predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。
predicate(断言) 会传入3个参数: (value, index, array)。 返回移除元素组成的新数组

27._.sortedIndex(array, value)使用二进制的方式检索来决定 value值 应该插入到数组中 尽可能小的索引位置,以保证array的排序。

28._.sortedIndexOf(array, value)这个方法类似 _.indexOf,除了它是在已经排序的数组array上执行二进制检索。

29._.sortedLastIndex(array, value)此方法类似于 _.sortedIndex,除了 它返回 value值 在 array 中插入尽可能大的索引位置(index)。

30._.sortedLastIndexOf(array, value)这个方法类似 _.lastIndexOf,除了它是在已经排序的数组array上执行二进制检索。

31._.sortedUniq(array)这个方法类似 _.uniq,除了它会优化排序数组。(返回新的不重复的数组)

32._.tail(array)获取除了array数组第一个元素以外的全部元素。

33._.take(array, [n=1])创建一个数组切片,从array数组的起始元素开始提取n个元素。

34._.takeRight(array, [n=1])创建一个数组切片,从array数组的最后一个元素开始提取n个元素。

35._.union([arrays])创建一个按顺序排列的唯一值的数组。(返回一个新的联合数组)

36._.uniq(array)创建一个去重后的array数组副本。(返回新的去重后的数组)

37._.without(array, [values])创建一个剔除所有给定值的新数组(返回过滤值后的新数组)

二、collection集合

1._.forEach(collection, [iteratee=_.identity])其中函数参数为value,index。

2._.forEachRight(collection, [iteratee=_.identity])

3._.every(collection, [predicate=_.identity])通过 predicate(断言函数) 检查 collection(集合)中的 所有 元素是否都返回真值。
一旦 predicate(断言函数) 返回假值,迭代就马上停止(检查后都都返回真值,那么就返回true,否则返回 false)

4._.filter(collection, [predicate=_.identity])

5._.find(collection, [predicate=_.identity], [fromIndex=0])(返回匹配元素,否则返回 undefined)

6._.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])从右到左遍历

7._.includes(collection, value, [fromIndex=0])检查 value(值) 是否在 collection(集合) 中

8._.orderBy(collection, [iteratees=[_.identity]], [orders])如果没指定 orders(排序),所有值以升序排序。
否则,指定为"desc" 降序,或者指定为 "asc" 升序,排序对应值。

9._.partition(collection, [predicate=_.identity])创建一个分成两组的元素数组,第一组包含predicate(断言函数)返回为 truthy(真值)的元素,
第二组包含predicate(断言函数)返回为 falsey(假值)的元素。

10._.sample(collection)从collection(集合)中获得一个随机元素。

11._.sampleSize(collection, [n=1])从collection(集合)中获得 n 个随机元素。

12._.shuffle(collection)创建一个被打乱值的集合

13._.size(collection)返回collection(集合)的长度,如果集合是类数组或字符串,返回其 length ;
如果集合是对象,返回其可枚举属性的个数。

14._.some(collection, [predicate=_.identity])
通过 predicate(断言函数) 检查collection(集合)中的元素是否存在 任意 truthy(真值)的元素,
一旦 predicate(断言函数) 返回 truthy(真值),遍历就停止。
predicate 调用3个参数:(value, index|key, collection)。

15._.sortBy(collection, [iteratees=[_.identity]])
创建一个元素数组。 以 iteratee 处理的结果升序排序。 这个方法执行稳定排序,也就是说相同元素会保持原始排序。

三、Function

1._.after(n, func)_.before的反向函数;此方法创建一个函数,当他被调用n或更多次之后将马上触发func 。

2._.before(n, func)创建一个调用func的函数,通过this绑定和创建函数的参数调用func,调用次数不超过 n 次

3._.curry(func, [arity=func.length])柯里化函数

4._.debounce(func, [wait=0], [options={}])防抖动函数

5._.defer(func, [args])推迟调用func,直到当前堆栈清理完毕

6._.delay(func, wait, [args])延迟 wait 毫秒后调用 func。

7._.once(func)创建一个只能调用 func 一次的函数。 重复调用返回第一次调用的结果。

8._.throttle(func, [wait=0], [options={}])创建一个节流函数,在 wait 秒内最多执行 func 一次的函数

四、Lang

1._.castArray(value)如果 value 不是数组, 那么强制转为数组。

2._.clone(value)创建一个value的浅拷贝。

3._.cloneDeep(value)深拷贝

4._.conformsTo(object, source)通过调用断言source的属性与 object 的相应属性值,检查 object是否符合 source。

5._.eq(value, other)执行 SameValueZero 比较两者的值,来确定它们是否相等。

6._.gt(value, other)检查 value是否大于 other。

7._.gte(value, other)检查 value是否大于或者等于 other。

8._.isArguments(value)检查 value 是否是一个类 arguments 对象。

9._.isArray(value)检查 value 是否是 Array 类对象。

10._.isArrayBuffer(value)检查 value 是否是 ArrayBuffer 对象。

11._.isBoolean(value)检查 value 是否是原始 boolean 类型或者对象。

12._.isDate(value)检查 value 是否是 Date 对象。

13._.isElement(value)检查 value 是否是可能是 DOM 元素。

14._.isEmpty(value)检查 value 是否为一个空对象,集合,映射或者set。
判断的依据是除非是有枚举属性的对象,length 大于 0 的 arguments object, array, string 或类jquery选择器。

15._.isEqual(value, other)执行深比较来确定两者的值是否相等。

16._.isFinite(value)检查 value 是否是原始有限数值。

17._.isFunction(value)检查 value 是否是 Function 对象。

18._.isMatch(object, source)执行一个深度比较,来确定 object 是否含有和 source 完全相等的属性值。

19._.isNative(value)检查 value 是否是一个原生函数。

20._.isNil(value)检查 value 是否是 null 或者 undefined。

21._.isNull(value)检查 valuealue 是否是 null。

22._.isObject(value)检查 value 是否为 Object 的 language type。

23._.isPlainObject(value)检查 value 是否是普通对象。 也就是说该对象由 Object 构造函数创建,或者 [[Prototype]] 为 null 。

判断是否是什么的太多了,反正你能想到的都有!!!

24._.lt(value, other)检查 value 是否小于 other。

25._.lte(value, other)检查 value 是否小于等于 other。

26._.toInteger(value)转换 value 为一个整数。

五、Math
_.add
_.ceil(number,[precision=0])根据precision(精度,可为负值)向上舍入number
_.divide
_.floor 向下舍入
_.max
_.maxBy
_.mean 平均值
_.meanBy
_.min
_.minBy
_.multiply
_.round 四舍五入
_.subtract
_.sum 求和
_.sumBy

六、Number

1._.inRange(number, [start=0], end)检查 n 是否在 start 与 end 之间,但不包括 end。 如果 end 没有指定,那么 start 设置为0。
如果 start 大于 end,那么参数会交换以便支持负范围。

2._.random([lower=0], [upper=1], [floating])产生一个包括 lower 与 upper 之间的数。 如果只提供一个参数返回一个0到提供数之间的数。
如果 floating 设为 true,或者 lower 或 upper 是浮点数,结果返回浮点数。

七、Object
1._.assignIn(object, [sources])这个方法类似 _.assign, 除了它会遍历并继承原型上的属性。

2._.findKey(object, [predicate=_.identity])这个方法类似 _.find 。 除了它返回最先被 predicate 判断为真值的元素 key,而不是元素本身。

3._.keysIn(object)创建一个 object 自身 和 继承的可枚举属性名为数组。

4._.merge(object, [sources])该方法类似 _.assign, 除了它递归合并 sources 来源对象自身和继承的可枚举属性到 object 目标对象。

5._.omit(object, [props])反向版 _.pick; 这个方法一个对象,这个对象由忽略属性之外的object自身和继承的可枚举属性组成。
(可以理解为删除object对象的属性)。

6._.pick(object, [props])创建一个从 object 中选中的属性的对象。

七、Seq

1._.chain(value)创建一个lodash包装实例,包装value以启用显式链模式。要解除链必须使用 _#value 方法。

2._.tap(value, interceptor)这个方法调用一个 interceptor 并返回 value。interceptor调用1个参数: (value)。
该方法的目的是 进入 方法链序列以便修改中间结果。

八、String

1._.camelCase([string=''])转换字符串string为 驼峰写法。

2._.capitalize([string=''])转换字符串string首字母为大写,剩下为小写。

3._.endsWith([string=''], [target], [position=string.length])检查字符串string是否以给定的target字符串结尾。
position可以指定检索的位置

4._.escape([string=''])转义string中的 "&", "<", ">", '"', "'", 和 "`" 字符为HTML实体字符。

5._.escapeRegExp([string=''])转义 RegExp 字符串中特殊的字符 "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", 和 "|" in .

6._.kebabCase([string=''])转换字符串string为 kebab case.
就是以-连接

7._.lowerCase([string=''])转换字符串string以空格分开单词,并转换为小写。

8._.lowerFirst([string=''])转换字符串string的首字母为小写。

9._.repeat([string=''], [n=1])重复 N 次给定字符串。

10_.snakeCase([string=''])转换字符串string为 snake case.
就是以_连接

11._.startCase([string=''])转换 string 字符串为 start case.
每个单词的首字母大写,其余不变。

12._.startsWith([string=''], [target], [position=0])检查字符串string是否以 target 开头。

13._.trim([string=''], [chars=whitespace])从string字符串中移除前面和后面的 空格 或 指定的字符。

14._.truncate([string=''], [options={}])截断string字符串,如果字符串超出了限定的最大值。
被截断的字符串后面会以 omission 代替,omission 默认是 "..."。
option包含length,omission,separator属性

15._.unescape([string='']) _.escape的反向版。

posted @ 2019-08-08 16:53  你风致  阅读(2334)  评论(0编辑  收藏  举报