📜  Lodash函数完整参考(1)

📅  最后修改于: 2023-12-03 15:02:47.574000             🧑  作者: Mango

Lodash函数完整参考

Lodash是一个现代化的 JavaScript 工具库,提供了诸如快速、易用的函数式编程之类的功能,它致力于实现一致性、灵活性和性能化,同时也支持现代化的 JavaScript 语言特性。

安装

在 Node.js 环境下,Lodash 可以使用 npm 进行安装。

npm install lodash

在浏览器环境下,可以通过下载 Lodash 的源代码并引入 js 文件来使用。

用法

使用 Lodash 非常简单,只需引入需要使用的方法即可。以下是一个例子:

const _ = require('lodash');

const array = [1, 2, 3, 4, 5];
const filtered = _.filter(array, n => n % 2 === 0);
console.log(filtered); // [2, 4]
Lodash 方法

以下是 Lodash 中常用的方法参考(按字母顺序排列):

_.chunk(array, [size=1])

将一个数组拆分成多个指定大小的数组块,如果数组无法被整除,那么最后一块的大小可能会小于指定的大小。

_.chunk(['a', 'b', 'c', 'd', 'e'], 2);
// => [['a', 'b'], ['c', 'd'], ['e']]

_.chunk(['a', 'b', 'c', 'd', 'e'], 3);
// => [['a', 'b', 'c'], ['d', 'e']]
_.compact(array)

创建一个新数组,其中包含原始数组中所有“真”值的元素。

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
_.concat(array, [values])

创建一个新数组,其中包含原始数组和任何其他输入数组的所有元素。

const array = [1];
const other = _.concat(array, 2, [3], [[4]]);
// => [1, 2, 3, [4]]

console.log(other);
// => [1, 2, 3, [4]]

console.log(array);
// => [1]
_.debounce(func, [wait=0], [options={}])

创建一个 function,该 function 在 wait 毫秒内最多执行一次,在重复调用时会覆盖先前的调用。

const debounced = _.debounce(() => console.log('hello'), 1000);

debounced();
setTimeout(debounced, 500);
// => Cancel the trailing debounced invocation.
debounced.cancel();
_.difference(array, [values])

创建一个数组,其中不包含原始数组中存在于其他数组中的任何元素。

_.difference([2, 1], [2, 3]);
// => [1]
.filter(collection, [predicate=.identity])

通过遍历集合来创建一个新集合,其中每个元素由 predicate 返回 true。

_.filter([1, 2, 3, 4, 5], n => n % 2 === 0);
// => [2, 4]
_.flatten(array)

将一个嵌套数组转换为单层数组。

_.flatten([1, [2, [3, [4]], 5]]);
// => [1, 2, [3, [4]], 5]
.groupBy(collection, [iteratee=.identity])

通过 iteratee 指定的属性枚举集合元素,将元素按组分类。

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }

_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }
.map(collection, [iteratee=.identity])

通过 iteratee 应用来自左侧集合的每个元素的转换函数,并返回新的映射结果。

_.map([4, 8], n => n * n);
// => [16, 64]

_.map({ 'a': 4, 'b': 8 }, n => n * n);
// => [16, 64] (无法保证对象键的顺序)
.orderBy(collection, [iteratees=[.identity]], [orders])

根据 iteratees 排序集合。Iterates 可以是一个函数,也可以是一个字符串,该字符串对于“升序”排序设置为“asc”,对于降序排序设置为“desc”。

const users = [
  { 'user': 'fred', 'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred', 'age': 40 },
  { 'user': 'barney', 'age': 34 }
];

_.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// => [{ 'user': 'barney', 'age': 36 }, { 'user': 'barney', 'age': 34 }, { 'user': 'fred', 'age': 48 }, { 'user': 'fred', 'age': 40 }]
_.shuffle(collection)

创建一个具有随机顺序的集合。

_.shuffle([1, 2, 3, 4, 5]);
// => [3, 5, 4, 1, 2]
_.uniq(array)

创建一个新数组,其中包含原始数组仅包含一次的所有元素。

_.uniq([2, 1, 2]);
// => [2, 1]
结论

Lodash 提供的方法非常多,可以大大简化开发过程,并提高代码的可读性和维护性。上述只是一些常用的方法参考,您可以在官方文档中找到所有的 Lodash 方法和使用示例。

参考资料