在GitHub上尋找第三方控件react-native-atoz-list
時(shí),在項(xiàng)目中發(fā)現(xiàn)了lodash,出于好奇,就去了解了一下,發(fā)現(xiàn)它真的方便快捷,好用到爆,在此記錄一下。
一、什么是lodash?
lodash庫是一個(gè)具有一致接口、模塊化、高性能等特性的 JavaScript 工具庫。
lodash是一個(gè)javascript庫,也是Node JS的常用模塊,它內(nèi)部封裝了諸多對(duì)字符串、數(shù)組、對(duì)象等常見數(shù)據(jù)類型的處理函數(shù),其中部分是目前 ECMAScript 尚未制定的規(guī)范,但同時(shí)被業(yè)界所認(rèn)可的輔助函數(shù)。
二、lodash相關(guān)文檔
API文檔:
Lodash簡書文章推薦:
三、lodash模塊組成
- Array,適用于數(shù)組類型,比如填充數(shù)據(jù)、查找元素、數(shù)組分片等操作;
- Collection,適用于數(shù)組和對(duì)象類型,部分適用于字符串,比如分組、查找、過濾等操作;
- Function,適用于函數(shù)類型,比如節(jié)流、延遲、緩存、設(shè)置鉤子等操作;
- Lang,普遍適用于各種類型,常用于執(zhí)行類型判斷和類型轉(zhuǎn)換;
- Math,適用于數(shù)值類型,常用于執(zhí)行數(shù)學(xué)運(yùn)算;
- Number,適用于生成隨機(jī)數(shù),比較數(shù)值與數(shù)值區(qū)間的關(guān)系;
- Object,適用于對(duì)象類型,常用于對(duì)象的創(chuàng)建、擴(kuò)展、類型轉(zhuǎn)換、檢索、集合等操作;
- Seq,常用于創(chuàng)建鏈?zhǔn)秸{(diào)用,提高執(zhí)行性能(惰性計(jì)算);
- String,適用于字符串類型;
四、安裝及使用
以_.groupBy()方法為例來講:
(一)使用方法
- 安裝命令:
npm i --save lodash - 使用方法:
import _ from 'lodash';
let names = require('./names');
names = _.groupBy(require('./names'), (name) => name[0].toUpperCase());
(二)參數(shù)詳細(xì)介紹

QQ20171102-230315@2x.png

QQ20171102-230256@2x.png

QQ20171102-225204@2x.png
五、舉個(gè)“栗”子
我們要實(shí)現(xiàn)分組的城市列表,類似于微信中的通信錄列表,上張圖:

QQ20171109-154325@2x.png
假設(shè)我們現(xiàn)在只有這樣的數(shù)據(jù):

WX20171103-134040@2x.png
那怎么實(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é)果如下:

QQ20171109-153220@2x.png
這樣分組之后是不是就很方便了呢?
lodash庫還有其他的方法,有興趣的朋友可以自行研究。