Lodash中常用的工具函数

1.循环N次

for循环是一个常见的使用场景,但是它会污染附加变量作用域(scope)。组合使用数组和apply方法,我们可以实现N个循环,而无需创建一个额外的变量,但是这种写法不够直观。Lodash中的_.times方法就非常的直观易用。

注意:如果循环不是很繁琐,建议使用基本的for循环或while反向循环,这样迭代的性能更高。

2.迭代数组并返回每一项中深度嵌套的属性

Lodash中的map方法和JavaScript中原生的数组方法非常的相似,可以通过一个字符串而不是回调函数来浏览深度嵌套的对象属性。

3.创建一个大小为N的数组,并且为他们添加相同的前缀

 

如果将_.times和_.uniqueId方法组合使用,我们可以获得一个简洁的解决方案。如果不想重复的声明上下文,Lodash也提供了一个可选方案。_.partial方法和原生的bind方法基本上完成了相同的工作,除了它假设当前的上下文为this。

4.深度克隆JavaScript对象

Lodash提供了_.cloneDeep方法来完成对象的深度克隆操作。当然,使用_.clone还能灵活的指定克隆的深度。

5.在指定范围内获取一个随机值

_.random方法要比原生方法更强大与灵活。

_.random的附加选项

6.扩展对象

_.assign方法也可以接收多个参数对象进行扩展。

7.从对象中删除属性

原生的方法只能传递数组作为参数,有时我们可能需要对字符串参数进行单个key的删除,甚至是传入一个比较函数。

需要注意的是,_.omit会返回一个新对象,而不会直接引用传递的对象(不会修改传递的对象)。如果想要改变前的对象不受到删除属性的影响,这是非常有用的。

8.从某个对象中选择部分属性组成新的对象

_.pick方法与_.omit方法正好相反,它会从一个对象中选择指定的属性组装成新的对象。 和_.omit一样,_.pick也会返回新的对象,并且能够传入字符串、数组、比较器函数。

 

9.从列表中随机的选择列表项

_.sample方法还配备了一个额外的优秀特点: 从列表中选择多个随机的元素返回。

多个随机项

10.JSON.parse的错误处理

如果在应用程序中使用JSON.parse,建议一定要进行错误处理。_.attempt可以防止JSON.parse抛出一个应用程序错误。相反,它返回一个Error对象。

11.find

返回function第一个返回真值的第一个元素,如果没有匹配元素返回undefined。

12.findIndex

类似find,区别是该方法返回第一个通过predicate 判断为真值的元素的索引值,而不是元素本身,如果没有匹配元素返回-1。

13.uniq :去除集合中的重复部分

14.filter

返回predicate返回真值的所有元素的数组,返回值是一个新的过滤后的数组(浅拷贝),不会改变原数组。

15.includes(collection, value, [fromIndex=0])

检查 value是否在 collection中。如果 collection是一个字符串,那么检查 value是否在字符串中,否则使用 SameValueZero 做等值比较。如果指定 fromIndex是负数,那么从 collection的结尾开始检索。

16.orderBy

除了增加了一个参数orders指定)结果如何排序。指定为”desc” 降序,或者指定为 “asc” 升序,默认为asc。

17.isEmpty

检查 value 是否为一个空对象,集合,映射或者set。判断的依据是除非是有枚举属性的对象,length 大于 0 的 arguments object, array, string 或类jquery选择器。对象如果被认为为空,那么他们没有自己的可枚举属性的对象。

18.isEqual:执行深比较来确定两者的值是否相等

总结:

Lodash能让代码看起来更加的精简, 也提高了应用程序逻辑的清晰度。此外,Lodash也迫使我们以函数式的方式来思考编程,我们可以将应用切分为若干个小且专注的模块,这种模块化能够提高我们应用程序在测试时的代码覆盖率。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值