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`:将一个多参数函数转换为一系列的单参数函数,称为柯里化。这在需要部分应用函数参数时非常有用。

扫描二维码关注公众号,回复: 17413745 查看本文章
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... 10

console.log(memoizedFunction(5)); // 10 (直接从缓存中获取结果,不再重新计算)

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

猜你喜欢

转载自blog.csdn.net/weixin_64684095/article/details/143262347