当前位置: 首页 > 后端技术 > Node.js

Lodash常用API注释

时间:2023-04-03 20:55:54 Node.js

lodash中文文档目前只找到3.10.x版本。现在lodash已经更新到4.17.x了,很多文档都过期了。而且lodash中的API太多了,有时候记不住常用的名字,所以贴在这里,方便自己和大家。nativeusage直接使用的API_.reject根据条件移除一个元素。varfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]varbar=_.reject(foo,['id',0])//bar=[{id:1,name:"bbb",age:25}]_.pick根据第二个参数的key数组过滤第一个参数中的值并返回varfoo={id:0,name:"aaa",age:33}varbar=_.pick(foo,['name','age'])//bar={name:"aaa",age:33}_.keys返回对象中的所有键varfoo={id:0,name:"aaa",age:33}varbar=_.keys(foo)//bar=['id','name','age']_.cloneDeep深拷贝,不用说了,js中除了基本类型以外的类型,默认都会拷贝备份varbar=_.cloneDeep(foo)_.findsearcharrayvarfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]varbar=_.find(foo,['id',0])//bar={id:0,name:"aaa",age:33}注意,如果没有找到,会返回undefined。处理_.keyBy,使用某个属性作为key,将数组转化为对象varfoo=varfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]varbar=_.keyBy(foo,'name')//bar={//aaa:{id:0,name:"aaa",age:33},//bbb:{id:1,name:"bbb",age:25}//}_.filter根据条件元素过滤掉符合条件的,返回一个新的数组varfoo=varfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]varbar=_.filter(foo,['name',"aaa"])//bar=[{id:0,name:"aaa",age:33}]_.map从集合中挑选出一个键并将其值作为数组返回varfoo=varfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]varbar=_.map(foo,'name')//bar=["aaa","bbb"]_.max/_.min/_.sum最大值,最小值,数组求和varfoo=[1,2,3,4]varbar=_.max(foo)//bar=4bar=_.min(foo)//bar=1bar=_.sum(foo)//bar=10_.pad/_.padStart/_.padEnd在两端、开始和结束处填充字符varfoo="helloworld"varbar=_.pad(foo,14,'-')//bar=--helloworld--bar=_.padStart(foo,14,'-')//bar=----helloworldbar=_.padEnd(foo,14、'-')//bar=helloworld----组合用法如果以上是基本技巧,那么这里有几个很酷的组合技巧:选择json数组中id最大的itemvarfoo=[{id:0,姓名:"aaa",年龄:33},{id:1,姓名:"bbb",年龄:25}]varbar=_.find(foo,['id',_.max(_.map(foo,'id'))])//bar={id:1,name:"bbb",age:25}ps:也可以用一个maxBykey代替更新json数组Item的某个key价值varfoo=[{id:0,name:"aaa",age:33},{id:1,name:"bbb",age:25}]letlist=_.keyBy(foo,'id')list[0].name="ccc"varbar=_.map(list)//bar=[//{id:0,姓名:"ccc",年龄:33},//{id:1,姓名:"bbb",年龄:25}//]