lodash中文文档目前我只找到了3.10.x版本,如今lodash已经更新到4.17.x了,好多文档已通过期。并且lodash中api太多,有时候经常使用的几个我老是记不住名字,在这里贴出来,方便本身和你们。javascript
直接使用的APIjava
根据条件去除某个元素。json
var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.reject(foo, ['id', 0]) //bar = [{id: 1, name: "bbb", age: 25}]
根据第二个参数的key的数组,筛选第一个参数中的值并返回api
var foo = {id: 0, name: "aaa", age: 33} var bar = _.pick(foo, ['name', 'age']) //bar = {name: "aaa", age: 33}
返回object中的全部key数组
var foo = {id: 0, name: "aaa", age: 33} var bar = _.keys(foo) //bar = ['id', 'name', 'age']
深度拷贝,这个不用多说了吧,js中基础类型之外的类型,都会默认拷贝备份var bar = _.cloneDeep(foo)
code
查找数组对象
var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.find(foo, ['id', 0]) //bar = {id: 0, name: "aaa", age: 33}
注意一下若是没找到的话,会返回undefined,要处理一下ip
以某个属性为键,将数组转为对象文档
var foo = var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.keyBy(foo, 'name') //bar = { // aaa: {id: 0, name: "aaa", age: 33}, // bbb: {id: 1, name: "bbb", age: 25} //}
根据条件过滤出符合条件的元素,返回新数组class
var foo = var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.filter(foo, ['name', "aaa"]) //bar = [{id: 0, name: "aaa", age: 33}]
从集合中挑出一个key,将其值做为数组返回
var foo = var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.map(foo, 'name') //bar = ["aaa", "bbb"]
数组中最大值、最小值、数组求和
var foo = [1, 2, 3, 4] var bar = _.max(foo) //bar = 4 bar = _.min(foo) //bar = 1 bar = _.sum(foo) //bar = 10
在两端、开头、末尾补齐字符
var foo = "helloworld" var bar = _.pad(foo, 14, '-') //bar = --helloworld-- bar = _.padStart(foo, 14, '-') //bar = ----helloworld bar = _.padEnd(foo, 14, '-') //bar = helloworld----
若是说上面是基础技能,那么下面奉上几个炫酷的组合技:
var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.find(foo, ['id', _.max(_.map(foo, 'id'))]) // bar = {id: 1, name: "bbb", age: 25}
ps:也能够用maxBy某个key来代替
var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] let list = _.keyBy(foo, 'id') list[0].name = "ccc" var bar = _.map(list) // bar = [ // {id: 0, name: "ccc", age: 33}, // {id: 1, name: "bbb", age: 25} //]