当前位置: 首页 > news >正文

lodash 库作用

Lodash 是一个实用的 JavaScript 工具库。

一、数组操作

1. 数组遍历与转换

`_.forEach`:可以遍历数组中的每个元素,并对其执行指定的函数。

const numbers = [1, 2, 3, 4];_.forEach(numbers, (num) => {console.log(num * 2);});

`_.map`:创建一个新数组,其中每个元素都是对原始数组中的对应元素调用指定函数的结果。

const doubledNumbers = _.map(numbers, (num) => num * 2);console.log(doubledNumbers); // [2, 4, 6, 8]

2. 数组过滤与排序

`_.filter`:根据指定的条件过滤数组中的元素,返回一个新的数组,其中只包含满足条件的元素。

const evenNumbers = _.filter(numbers, (num) => num % 2 === 0);console.log(evenNumbers); // [2, 4]

`_.sortBy`:对数组进行排序,可以根据数组中元素的某个属性进行排序。

const people = [{ name: "Alice", age: 30 },{ name: "Bob", age: 25 },{ name: "Charlie", age: 35 },];const sortedPeople = _.sortBy(people, "age");console.log(sortedPeople);// [//   { name: 'Bob', age: 25 },//   { name: 'Alice', age: 30 },//   { name: 'Charlie', age: 35 },// ]

二、对象操作

1. 对象属性获取与设置

`_.get`:安全地获取对象嵌套属性的值。如果属性不存在,不会抛出错误,而是返回 `undefined`。

const obj = { a: { b: { c: 10 } } };const value = _.get(obj, "a.b.c");console.log(value); // 10

`_.set`:设置对象的嵌套属性的值。如果属性路径中的某些部分不存在,会自动创建中间对象。

const newObj = _.set({}, "a.b.c", 20);console.log(newObj); // { a: { b: { c: 20 } } }

2. 对象克隆与合并

`_.cloneDeep`:深度克隆一个对象,包括嵌套的对象和数组。

const originalObj = { a: { b: [1, 2, 3] } };const clonedObj = _.cloneDeep(originalObj);clonedObj.a.b.push(4);console.log(originalObj); // { a: { b: [1, 2, 3] } }console.log(clonedObj); // { a: { b: [1, 2, 3, 4] } }

`_.merge`:合并多个对象的属性到一个目标对象中。如果多个对象中存在相同的属性,后面的对象的属性值会覆盖前面的对象的属性值。

const obj1 = { a: 1, b: 2 };const obj2 = { b: 3, c: 4 };const mergedObj = _.merge(obj1, obj2);console.log(mergedObj); // { a: 1, b: 3, c: 4 }

三、函数式编程辅助

1. 函数组合与柯里化

`_.flow``_.flowRight`:用于组合多个函数,将前一个函数的输出作为后一个函数的输入。

const add = (a, b) => a + b;const multiply = (a, b) => a * b;const composedFunction = _.flow(add, multiply);console.log(composedFunction(2, 3)); // (2 + 3) * (2 + 3) = 25

`_.curry`:将一个多参数函数转换为一系列的单参数函数,称为柯里化。这在需要部分应用函数参数时非常有用。

const addThreeNumbers = (a, b, c) => a + b + c;const curriedAddThreeNumbers = _.curry(addThreeNumbers);const addFiveAndSix = curriedAddThreeNumbers(5);const result = addFiveAndSix(6, 7);console.log(result); // 5 + 6 + 7 = 18

2. 函数记忆化

`_.memoize`:对一个函数进行记忆化,使得对于相同的输入参数,函数只计算一次并缓存结果。在处理昂贵的计算或重复调用相同参数的函数时,可以提高性能。

const expensiveFunction = (n) => {console.log("Calculating...");return n * 2;};const memoizedFunction = _.memoize(expensiveFunction);console.log(memoizedFunction(5)); // Calculating... 10console.log(memoizedFunction(5)); // 10 (直接从缓存中获取结果,不再重新计算)

总结:Lodash 提供了许多实用的函数,用于处理数组、对象和函数,使 JavaScript 开发更加高效和简洁。它在前端开发、Node.js 应用程序和其他 JavaScript 项目中广泛使用。


http://www.mrgr.cn/news/59306.html

相关文章:

  • 耐高压网络变压器的主要应用场景
  • Java中为什么要私有化构造方法
  • [Redis] Redis数据持久化
  • SQL实战测试
  • 985研一,转嵌入式好还是后端开发好?
  • 【JavaEE】【多线程】单例模式
  • python的装饰器
  • 好/坏代码实例解读:图文并茂说明
  • 在MySQL中存储IP地址的最佳实践
  • C#判断带数字的字符串数组连续性的两种方式
  • 【JavaSE】认识String类,了解,进阶到熟练掌握
  • 使用 Resilience4j 实现重试
  • PHP模拟多继承的方式:traits
  • 数据结构 - 散列表,初探
  • Java篇图书管理系统
  • 深度图像和距离图像
  • 2024年如何学好JS
  • 多层感知机的从零实现与softmax的从零实现(真·0000零基础)
  • 2025前端面试-内存泄露-001
  • 软件模拟 SPI 时序,驱动OLED屏幕
  • 基于Python+Django的气象数据分析与可视化系统
  • 前端工程化面试题
  • asp.net core 入口 验证token,但有的接口要跳过验证
  • 尚硅谷-react教程-求和案例-@redux-devtools/extension 开发者工具使用-笔记
  • 工程项目管理软件怎么选?推荐7款实用工具
  • 越权漏洞概述