非常好用的JavaScript 工具库--lodash
一、什么是lodash?
lodash库是一个具有一致接口、模块化、高性能等特性的 JavaScript 工具库。
lodash是一个javascript库,也是Node JS的常用模块,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,其中部分是目前 ECMAScript 尚未制定的规范,但同时被业界所认可的辅助函数。
二、lodash相关文档
API文档:
三、lodash模块组成
- Array,适用于数组类型,比如填充数据、查找元素、数组分片等操作;
- Collection,适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等操作;
- Function,适用于函数类型,比如节流、延迟、缓存、设置钩子等操作;
- Lang,普遍适用于各种类型,常用于执行类型判断和类型转换;
- Math,适用于数值类型,常用于执行数学运算;
- Number,适用于生成随机数,比较数值与数值区间的关系;
- Object,适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等操作;
- Seq,常用于创建链式调用,提高执行性能(惰性计算);
- String,适用于字符串类型;
四、安装及使用
以_.groupBy()方法为例来讲:
(一)使用方法
- 安装命令:
npm i --save lodash
- 使用方法:
import _ from 'lodash';
let names = require('./names');
names = _.groupBy(require('./names'), (name) => name[0].toUpperCase());
(二)参数详细介绍
五、举个“栗”子
我们要实现分组的城市列表,类似于微信中的通信录列表,上张图:
假设我们现在只有这样的数据:
那怎么实现呢?
用groupBy就可以实现分组啦~
...
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);
}
...
分组结果如下:
常用的方法
1.生成唯一id
_.uniqueId()
2.检查字符串string
是否以 target
开头。
let a = 'abc666'; _.startsWith(a,'abc') // true 结束 ._endsWith(a,'666') true
3.截取字符串 做标题
_.truncate('这是一个简单的标题', { 'length': 8 }); // 这是一个简...
4.获取array
数组的第n个元素。如果n
为负数,则返回从数组结尾开始的第n个元素。
var array = ['a', 'b', 'c', 'd']; _.nth(array, 1); // => 'b' _.nth(array, -2); // => 'c';
5.创建一个从 object
中选中的属性的对象。
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick(object, ['a', 'c']); // => { 'a': 1, 'c': 3 }
6.修改对象中的数据 _.set(object, path, value)
let o = {value:20}; _.set(o,'value',10); // console.log(o) // {value:10}
7.排序 orderBy 默认升序
var users = [ { 'user': 'fred', 'age': 48 }, { 'user': 'barney', 'age': 34 }, { 'user': 'fred', 'age': 40 }, { 'user': 'barney', 'age': 36 } ]; // 以 `user` 升序排序 再 `age` 以降序排序。 _.orderBy(users, ['user', 'age'], ['asc', 'desc']); // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]