【笔记】Lodash学习笔记

前言

Lodash学习笔记

引入依赖

1
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js"></script>

调用Lodash

  • 在引入lodash.js后,_会作为window对象的属性

查看版本

1
console.log(_.VERSION);

对数值的操作

生成随机数

  • 生成范围为[0,2]的随机数
1
_.random(2);
1
_random(0, 2);

对字符串的操作

转换为小驼峰

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"]);

遍历可迭代对象

  • 中途return false会立即退出遍历
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
});

完成