前言
Lodash学习笔记
引入依赖
1
| <script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js"></script>
|
调用Lodash
- 在引入
lodash.js后,_会作为window对象的属性
查看版本
对数值的操作
生成随机数
对字符串的操作
转换为小驼峰
1
| var result = _.camelCase("");
|
转换为首字母大写
1
| var result = _.capitalize("");
|
判断开头和结尾
判断是否以指定子字符串开头
1
| var ok = _.startWith("字符串", "子字符串");
|
判断是否以指定子字符串开头
1
| var ok = _.endWith("字符串", "子字符串");
|
通过占位符补齐位数
在开头补齐
2:补齐的位数
1
| var result = _.padStart("字符串", 2, "占位符");
|
在结尾补齐
1
| var result = _.padEnd("字符串", 2, "占位符");
|
对数组的操作
数组元素去重
1
| var result = _.uniq([]);
|
数组扁平化
1
| var result = _.flatten([]);
|
去除数组中的假值
1
| var result = _.compact([]);
|
对对象的操作
拷贝对象
浅拷贝
1 2 3
| var obj = {key: "value"}
var result = _.clone(obj);
|
深拷贝
1 2 3
| var obj = {key: "value"}
var result = _.cloneDeep(obj);
|
只拷贝指定属性
1 2 3
| var obj = {key: "value"}
var result = _.pick(obj, ["key"]);
|
排除指定属性
1 2 3
| var obj = {key: "value"}
var result = _.omit(obj, ["key"]);
|
对可迭代对象的操作
随机获取元素
1
| var result = _.sample([]);
|
多字段排序
1 2 3 4 5 6
| var arr = [ {key1: "value", key2: "value"}, {key1: "value", key2: "value"} ];
var result = _.orderBy(arr, ["key1", "key2"], ["asc", "desc"]);
|
遍历可迭代对象
1 2 3 4 5
| var arr = [];
_.each(arr, function (value, key, obj) { ... });
|
1 2 3 4 5
| var arr = [];
_.forEach(arr, function (value, key, obj) { ... });
|
过滤可迭代对象
1 2 3 4 5
| var arr = [];
var result = _.filter(arr, function (value, key, obj) { ... });
|
对函数的操作
柯里化函数
1 2 3
| var fn = function () {}
var result = _.curry(fn);
|
防抖函数
leading:第一次触发是否立即执行,缺省值为false
trailing:最后一次触发后是否再执行一次,缺省值为true
1 2 3 4 5 6
| var fn = function () {}
var result = _.debounce(fn, 1000, { leading: false, trailing: true });
|
节流函数
leading:第一次触发是否立即执行,缺省值为true
trailing:最后一次触发后是否再执行一次,缺省值为true
1 2 3 4 5 6
| var fn = function () {}
var result = _.throttle(fn, 1000, { leading: true, trailing: true });
|
完成