在GitHub上尋找第三方控件react-native-atoz-list
時(shí)自阱,在項(xiàng)目中發(fā)現(xiàn)了lodash管毙,出于好奇腿椎,就去了解了一下,發(fā)現(xiàn)它真的方便快捷夭咬,好用到爆啃炸,在此記錄一下。
一卓舵、什么是lodash?
lodash庫(kù)是一個(gè)具有一致接口南用、模塊化、高性能等特性的 JavaScript 工具庫(kù)边器。
lodash是一個(gè)javascript庫(kù)训枢,也是Node JS的常用模塊,它內(nèi)部封裝了諸多對(duì)字符串忘巧、數(shù)組、對(duì)象等常見(jiàn)數(shù)據(jù)類(lèi)型的處理函數(shù)睦刃,其中部分是目前 ECMAScript 尚未制定的規(guī)范砚嘴,但同時(shí)被業(yè)界所認(rèn)可的輔助函數(shù)。
二涩拙、lodash相關(guān)文檔
API文檔:
Lodash簡(jiǎn)書(shū)文章推薦:
三际长、lodash模塊組成
- Array,適用于數(shù)組類(lèi)型兴泥,比如填充數(shù)據(jù)工育、查找元素、數(shù)組分片等操作搓彻;
- Collection如绸,適用于數(shù)組和對(duì)象類(lèi)型,部分適用于字符串旭贬,比如分組怔接、查找、過(guò)濾等操作稀轨;
- Function扼脐,適用于函數(shù)類(lèi)型,比如節(jié)流奋刽、延遲瓦侮、緩存艰赞、設(shè)置鉤子等操作;
- Lang肚吏,普遍適用于各種類(lèi)型猖毫,常用于執(zhí)行類(lèi)型判斷和類(lèi)型轉(zhuǎn)換;
- Math须喂,適用于數(shù)值類(lèi)型吁断,常用于執(zhí)行數(shù)學(xué)運(yùn)算;
- Number坞生,適用于生成隨機(jī)數(shù)仔役,比較數(shù)值與數(shù)值區(qū)間的關(guān)系;
- Object是己,適用于對(duì)象類(lèi)型又兵,常用于對(duì)象的創(chuàng)建、擴(kuò)展卒废、類(lèi)型轉(zhuǎn)換沛厨、檢索、集合等操作摔认;
- Seq逆皮,常用于創(chuàng)建鏈?zhǔn)秸{(diào)用,提高執(zhí)行性能(惰性計(jì)算)参袱;
- String电谣,適用于字符串類(lèi)型;
四抹蚀、安裝及使用
以_.groupBy()方法為例來(lái)講:
(一)使用方法
- 安裝命令:
npm i --save lodash
- 使用方法:
import _ from 'lodash';
let names = require('./names');
names = _.groupBy(require('./names'), (name) => name[0].toUpperCase());
(二)參數(shù)詳細(xì)介紹
五剿牺、舉個(gè)“栗”子
我們要實(shí)現(xiàn)分組的城市列表,類(lèi)似于微信中的通信錄列表环壤,上張圖:
假設(shè)我們現(xiàn)在只有這樣的數(shù)據(jù):
那怎么實(shí)現(xiàn)呢晒来?
用groupBy就可以實(shí)現(xiàn)分組啦~
...
import _ from 'lodash';
let cities = require('./beforeCity.json');
...
getCityInfo(){
console.log('cities=',cities);
let cityList = [];
cityList = _.groupBy(cities, (city) => city.pinyin[0]);
console.log('cityList=',cityList);
}
...
分組結(jié)果如下:
這樣分組之后是不是就很方便了呢?
lodash庫(kù)還有其他的方法郑现,有興趣的朋友可以自行研究湃崩。