前端lodash库原来这么好用,一行代码使用防抖节流,不用再去设置复杂变量
Lodash 介绍
Lodash 是一个 JavaScript 工具库,提供了大量实用的函数来处理常见的编程任务,如数组、对象、字符串等的操作。它的设计目标是提高代码的可读性和可维护性,同时提供更好的性能和兼容性。
- 丰富的功能
- 提供了超过 300 个方法,涵盖了数组、对象、字符串、函数、日期等多种数据类型的处理。
- 常见的方法包括 .map、.filter、.reduce、.get、.debounce、.throttle 等。
- 高性能
- 经过优化,许多方法的性能优于原生 JavaScript 实现。
- 提供了多种优化策略,如缓存、惰性计算等。
## 安装 Lodash
2.使用 npm 安装 或者 使用 yarn 安装
npm install lodash yarn add lodash
2.导入 Lodash
- 全局引入
import _ from 'lodash'; // 在 main.js 中全局引入 const doubled = _.map(numbers, n => n * 2);
- 按需引入
import { map, filter, reduce } from 'lodash'; // 按需引入 const squared = map(numbers, n => n * n);
3. Lodash 中最常用的 10 个方法
- _.map
遍历数组并返回一个新的数组,其中每个元素都是调用提供的函数后的结果。
const numbers = [1, 2, 3, 4, 5]; const doubled = _.map(numbers, n => n * 2); console.log(doubled); // 输出: [2, 4, 6, 8, 10]
- _.filter
过滤数组中的元素,返回满足条件的元素组成的数组。
const numbers = [1, 2, 3, 4, 5]; const evenNumbers = _.filter(numbers, n => n % 2 === 0); console.log(evenNumbers); // 输出: [2, 4]
- _.reduce
对数组中的每个元素执行一个 reducer 函数,将其结果汇总为单个输出值
const numbers = [1, 2, 3, 4, 5]; const sum = _.reduce(numbers, (acc, n) => acc + n, 0); console.log(sum); // 输出: 15
- _.get
安全地获取嵌套对象的属性值。
const user = { name: 'John Doe', address: { city: 'New York', zip: '10001' } }; const city = _.get(user, 'address.city', 'Unknown'); console.log(city); // 输出: New York const state = _.get(user, 'address.state', 'Unknown'); console.log(state); // 输出: Unknown
- _.debounce
防抖函数,限制函数在一定时间内的调用频率。
const log = _.debounce(() => console.log('Button clicked'), 300); document.getElementById('myButton').addEventListener('click', log);
- _.throttle
节流函数,确保函数在指定的时间间隔内最多执行一次
const log = _.throttle(() => console.log('Scroll event'), 1000); window.addEventListener('scroll', log);
- _.assign
将源对象的所有可枚举属性复制到目标对象。
const object = { 'a': 1 }; const other = { 'b': 2, 'c': 3 }; const result = _.assign(object, other); console.log(result); // 输出: { 'a': 1, 'b': 2, 'c': 3 }
- _.pick
创建一个新对象,只包含指定的属性。
const object = { 'a': 1, 'b': 2, 'c': 3 }; const picked = _.pick(object, ['a', 'c']); console.log(picked); // 输出: { 'a': 1, 'c': 3 }
- _.isEqual
比较两个值是否相等,支持深度比较。
const object = { 'a': 1 }; const other = { 'a': 1 }; const areEqual = _.isEqual(object, other); console.log(areEqual); // 输出: true
- _.uniq
去除数组中的重复元素。
const numbers = [1, 2, 1, 3, 2, 4]; const uniqueNumbers = _.uniq(numbers); console.log(uniqueNumbers); // 输出: [1, 2, 3, 4]
(图片来源网络,侵删)(图片来源网络,侵删)(图片来源网络,侵删)
- _.uniq
- _.isEqual
- _.pick
- _.assign
- _.throttle
- _.debounce
- _.get
- _.reduce
- _.filter
- _.map
- 按需引入
- 全局引入
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。