lodash:不得了!

465 阅读4分钟

感受

使用 Lodash 库之前和之后的感受会让你完全爱上它!Lodash 是一个功能丰富、高效、可靠的 JavaScript 实用工具库,它为你的开发工作提供了极大的便利。

在使用 Lodash 之前,你可能会遇到许多常见的编码问题,例如数组或对象的操作、字符串处理、日期操作等。这些操作需要你编写大量的重复代码,增加了开发的复杂度和时间成本。

然而,一旦你开始使用 Lodash,你将感受到它为你带来的巨大好处。Lodash 提供了大量的功能,包括但不限于:数组和对象的处理、集合操作、函数式编程、字符串和日期处理等。它通过简化常见任务的实现方式,使你的代码更加简洁、可读性更强、易于维护。

无论你是在处理数据、操作集合、转换数据格式还是进行函数式编程,Lodash 都能成为你最好的伙伴。它的强大功能和高效性能将为你的项目带来质的飞跃,极大地提升你的开发效率。

更重要的是,Lodash 是一个非常受欢迎的 JavaScript 库,具有广泛的社区支持和活跃的维护者团队。你可以轻松地找到相关的文档、教程和示例,以便快速掌握和应用它。

所以,如果你想在 JavaScript 开发中节省时间、提高效率,并让你的代码更加优雅和可维护,那么 Lodash 库绝对是你不可或缺的工具!

开始使用 Lodash,让它成为你开发的得力助手,你将爱上它的便利性和强大功能!

快来尝试 Lodash 吧,让你的开发之旅更加愉快!

使用历程

一. debounce

一般我们在需要防止用户多次点击而重复执行函数的情景下做的防抖,经常用到

image.png

使用前:

需要我们自己封装一个防抖函数如下:

function debounce(fn, delay) {
  let timeout;

  return function(...args) {
    clearTimeout(timeout);

    timeout = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
}

这个防抖函数接受一个函数 fn 和一个延迟时间 delay 作为参数,并返回一个新函数。当调用返回的新函数时,它会延迟一段时间后执行原始函数 fn,如果在延迟期间多次调用了新函数,则会重新计时延迟。

那么我们在用例中使用:

function processInput(value) {
  console.log(`Processing input: ${value}`);
}
const debouncedProcessInput = debounce(processInput, 500);

使用后

import { debounce } from 'lodash';

const debouncedProcessInput = debounce(() => {
  // 在此处添加搜索逻辑
}, 500);

使用 lodash 的 debounce 函数后,我们可以更简洁和灵活地实现防抖功能

二、sortBy

sortBy(collection,[iteratees=[_.identity]])函数可以对一个集合中的元素进行排序,并返回一个新的数组。 第二个函数决定排序。

import { sortBy } from 'lodash';

const arr = [
  { name: 'caca', age: 30 },
  { name: 'cay', age: 20 },
  {name: 'dog', age: 27 }
];
const result = sortBy(arr,['age']);
console.log(result) 

打印出来的结果:

image.png

当然如果想按特定的顺序排列,可以在_.identity做手脚

三、groupBy

_.groupBy(collection,[iteratee]) 函数根据指定的标准将集合进行分组,并返回一个包含分组结果的对象。

  • collection:要被分组的集合,可以是数组、对象或字符串。
  • iteratee:一个函数或属性名称,用作每个元素的分组标准。默认情况下,它使用自身作为键进行分组。

通过使用 _.groupBy 函数,你可以根据指定的标准轻松对集合进行分组,并得到一个包含分组结果的对象。 与sortBy一点相似

用例

const { groupBy } = require('lodash');

const students = [
  { name: 'Alice', grade: 'A' },
  { name: 'Bob', grade: 'B' },
  { name: 'Charlie', grade: 'A' },
  { name: 'Dave', grade: 'C' },
  { name: 'Eve', grade: 'B' },
];

const groupedByGrade = groupBy(students, 'grade');

console.log(groupedByGrade);

在上面的示例中,我们首先引入了 lodash 的 groupBy 函数。然后,我们创建了一个包含学生信息的数组 students,每个学生对象包含 name 和 grade 属性。接下来,我们使用 groupBy 函数将 students 数组按照学生的 grade 属性进行分组。

groupBy 函数接受两个参数:一个数组和一个用于分组的迭代器函数或属性名。在这个示例中,我们传递了 students 数组作为第一个参数,并指定了要按照 grade 属性进行分组。

最后,我们将分组结果打印到控制台,输出如下:

{
  A: [
    { name: 'Alice', grade: 'A' },
    { name: 'Charlie', grade: 'A' }
  ],
  B: [
    { name: 'Bob', grade: 'B' },
    { name: 'Eve', grade: 'B' }
  ],
  C: [
    { name: 'Dave', grade: 'C' }
  ]
}

上述结果表示了根据学生的 grade 属性进行的分组。所有 grade 为 'A' 的学生被分到一个组,所有 grade 为 'B' 的学生被分到另一个组,以此类推。

通过使用 lodash 的 groupBy 函数,我们能够方便地将数组按照指定的属性进行分组,简化了分组操作的代码

后续持续补充...