[轉] Lodash常用API筆記


 


原生用法

直接使用的API

_.reject

根據條件去除某個元素。

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}]

_.pick

根據第二個參數的key的數組,篩選第一個參數中的值並返回

var foo = {id: 0, name: "aaa", age: 33} var bar = _.pick(foo, ['name', 'age']) //bar = {name: "aaa", age: 33}

_.keys

返回object中的所有key

var foo = {id: 0, name: "aaa", age: 33} var bar = _.keys(foo) //bar = ['id', 'name', 'age']

_.cloneDeep

深度拷貝,這個不用多說了吧,js中基礎類型以外的類型,都會默認拷貝備份
var bar = _.cloneDeep(foo)

_.find

查找數組

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,要處理一下

_.keyBy

以某個屬性為鍵,將數組轉為對象

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} //}

_.filter

根據條件過濾出符合條件的元素,返回新數組

var foo = var foo = [ {id: 0, name: "aaa", age: 33}, {id: 1, name: "bbb", age: 25} ] var bar = _.filter(foo, ['name', "aaa"]) //bar = { // aaa: {id: 0, name: "aaa", age: 33} //}

_.map

從集合中挑出一個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"]

_.max/_.min/_.sum

數組中最大值、最小值、數組求和

var foo = [1, 2, 3, 4] var bar = _.max(foo) //bar = 4 bar = _.min(foo) //bar = 1 bar = _.sum(foo) //bar = 10

_.pad/_.padStart/_.padEnd

在兩端、開頭、末尾補齊字符

var foo = "helloworld" var bar = _.pad(foo, 14, '-') //bar = --helloworld-- bar = _.padStart(foo, 14, '-') //bar = ----helloworld bar = _.padEnd(foo, 14, '-') //bar = helloworld----

組合用法

如果說上面是基礎技能,那么下面奉上幾個炫酷的組合技:

選出json數組中id最大的一項

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來代替

更新json數組中某一項的值

 
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} //]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM