React里使用lodash工具库

news2024/12/29 4:00:38

安装

使用命令 npm install lodash

页面引入

常见的引入方式
  1. 引入整个lodash对象: import _ from 'lodash'
  2. 按名称引入特定的函数: import { orderBy } from "lodash";
    tips: 这两种引入方式都会引入整个lodash库, 体积大;不推荐
建议引入方式
  1. 只引入需要的函数: import orderBy from 'lodash/orderBy'
  2. 使用 lodash-es: import { orderBy } from 'lodash-es'
    tips: 这两种方式只会引入对应的模块。

常用方法

concat

concat: 创建一个新数组,将原数组和任何数组或值连接在一起
用法:

const array = [1,3];
const newArray = _.concat(array,'4',7,[[8]]);
console.log(newArray)   // [1,3,'4',7,[8]];
findIndex

findIndex :返回第一个判断为真值的元素的索引值。
用法:

  const arr = [
    {name:'judy',age: 12},
    {name:'linda',age: 23},
    {name:'candy',age: 43},
    {name:'linda',age: 18},
  ]
  
  const newArr = _.findIndex(arr,function(o) {
    return o.name == 'linda';
  })
  console.log(newArr);  // 1

  const newArr1 = _.findIndex(arr,{name: 'linda'});
  console.log(newArr1)  //1

  const newArr2 = _.findIndex(arr,['name','linda']);
  console.log(newArr2,);  //1
orderBy

orderBy: 对数组进行排序,默认为升序;也可以指定为 "desc" 降序,或者指定为 "asc" 升序。
用法:

const arr = [
  {name:'judy',age: 12},
  {name:'linda',age: 23},
  {name:'candy',age: 43},
  {name:'cindy',age: 18},
]
  // 根据名字排序,使用orderBy, 升序
  let arr1 = _.orderBy(arr,['name'],'asc');
  console.log(arr1)
  // 根据名字排序,使用orderBy, 降序
  let arr2 = _.orderBy(arr,['name'],'desc');
  console.log(arr2)
sample

sample: 获得一个随机元素。
用法:

  const arr = [ 1,2,3,4,5,6];
  const newArr = _.sample(arr);
  console.log(newArr)   // 随机返回了一个元素
size

size: 如果是数组或者字符串就返回 length ; 如果是对象,返回其可枚举的属性个数
用法:

  const str = 'string';
  console.log(_.size(str));  //6
  const arr = [1,2,3,4];
  console.log(_.size(arr));  // 4
  const obj = {name: 'linda',age: '24'};
  console.log(_.size(obj)) //  2
sortBy

sortBy 允许你指定一个属性来排序,默认为升序。如果需要降序排,需要借助reverse() ;或者使用上方 orderBy
用法:

  const arr = [
    {name:'judy',age: 12},
    {name:'linda',age: 23},
    {name:'candy',age: 43},
    {name:'cindy',age: 18},
  ]
 // 根据名字排序,使用sortBy 升序
 let arr3 = _.sortBy(arr,['name']);
 console.log(arr3)
 // 根据名字排序,使用sortBy先进性升序排序,然后使用reverse()函数进行反转
 let arr4 = _.sortBy(arr,['name']).reverse();
 console.log(arr4)
debounce

debounce(func,wait ,options): 创建一个 debounced (防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法;可以提供一个 options(选项) 对象决定如何调用func方法。
用法:

// 处理屏幕变化的函数
  const handle = () => {
  };
  // 使用debounce,避免窗口在变动时消耗过大。
  window.addEventListener('resize',_.debounce(handle,3000))
throttle

throttle(func,wait,options): 创建一个throttle节流函数,在 wait 秒内最多执行 func 一次的函数。
用法:

// 处理滚动事件
  const handleScroll = () => {
  };
  // 使用throttle,避免窗口在变动时消耗过大。
  window.addEventListener('scroll',_.throttle(handleScroll ,3000))
delay

delay: 延迟多少时间后执行函数
使用:

  _.delay(function() {
    console.log('延迟执行了~~~')
  },500)
clone

clone : 创建一个 浅拷贝
使用:

  const arr = [{name: 'linda',age: 13}];
  var newArr = _.clone(arr);
  console.log(arr[0] === newArr[0]); // true
cloneDeep

cloneDeep : 创建一个 深拷贝
使用:

  const arr = [{name: 'linda',age: 13}];
  var newArr = _.cloneDeep(arr);
  console.log(arr[0] === newArr[0]); // false

总结

更多lodash的方法及使用,可以参考中文官网文档: https://www.lodashjs.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RBTree(红黑树)

目录 红黑树的概念 红黑树的性质 红黑树节点的定义 红黑树的插入 1. 按照二叉搜索的树规则插入新节点 2. 检测新节点插入后,红黑树的性质是否造到破坏 红黑树的检测 红黑树的删除 红黑树和AVL树的比较 红黑树的概念 红黑树,是一种二叉搜索树&…

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口,各位可以关其它的或者打开其它端口测试,谨慎关闭22端口!不然就会像我下面一样握手超时😭😭&…

Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider

开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 价格区间界面 用户信息界面 品牌管理 笔记本管理 电脑主机…

AEO海关认证的注意事项

AEO海关认证的注意事项繁多且至关重要,企业需细致准备,确保万无一失。 首先,企业需深入研读相关政策文件,如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》,以政策为指引&#xff0…

MySQL如何只取根据某列连续重复行的第一条记录

前言 MySQL如何只取根据某列连续重复行的第一条记录,条件:某列、连续、验重 建表准备 DROP TABLE IF EXISTS test; CREATE TABLE test (id bigint NOT NULL,time datetime NULL DEFAULT NULL,price int NULL DEFAULT NULL,PRIMARY KEY (id) USING BT…

c++编译过程初识

编译过程 预处理:主要是执行一些预处理指令,主要是#开头的代码,如#include 的头文件、#define 定义的宏常量、#ifdef #ifndef #endif等条件编译的代码,具体包括查找头文件、进行宏替换、根据条件编译等操作。 g -E example.cpp -…

JS中的闭包和上下文

变量提升 和 函数提升 这里要提到一个提升的概念,即在JS中,在解析代码之前还有一个预处理的过程,这个过程中会把部分变量和函数声明提前到代码的最顶部, 会在其他所有代码之前执行。虽然当我们按照规范(严格模式或者T…

GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily

“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 GitLab作为一个广受欢迎的开源代码托管平台,近期宣布将停止服务中国大陆、澳门和香港地区的用户提供服务。根据官方通知&#x…

【2024年最新】BilibiliB站视频动态评论爬虫

废话不多说,直接先放git仓库:GitHub - linyuye/Bilibili_crawler: bilibili爬虫,基于selenium获取oid与cookie,request获取api内容 〇:概念简述 oid:视频/动态的uuid,b站对于发布内容的通用唯…

汽车IVI中控开发入门及进阶(46):FFmpeg

概述: FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放 几乎所有人类和机器创建的东西。它支持最模糊的古老格式,直到最前沿。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg 在各种构建环境、机器架构…

计算属性 简写和 完整写法

计算属性渲染不加上括号 methods方法和computed属性区别: computed只计算一次,然后缓存,后续直接拿出来使用,而methods每次使用每次计算,不会缓存 计算属性完整写法: 既获取又设置 slice 截取 成绩案例 …

WebRTC Simulcast 大小流介绍与优化实践

Simulcast 是 WebRTC 中的一种标准化技术 ,简称大小流。通过 Simulcast,客户端可以同时发送同一视频的多个版本。每个版本都以不同的分辨率和帧率独立编码,带宽较多的拉流端可以接收较高质量的视频流,带宽有限的拉流端则可以接收较…

kong网关使用pre-function插件,改写接口的返回数据

一、背景 kong作为api网关,除了反向代理后端服务外,还可对接口进行预处理。 比如本文提及的一个小功能,根据http header某个字段的值,等于多少的时候,返回一个固定的报文。 使用到的kong插件是pre-function。 除了上…

轮播图带详情插件、uniApp插件

超级好用的轮播图 介绍访问地址参数介绍使用方法(简单使用,参数结构点击链接查看详情)图片展示 介绍 带有底部物品介绍以及价格的轮播图组件,持续维护,uniApp插件,直接下载填充数据就可以在项目里面使用 …

Vite内网ip访问,两种配置方式和修改端口号教程

目录 问题 两种解决方式 结果 总结 preview.host preview.port 问题 使用vite运行项目的时候,控制台会只出现127.0.0.1(localhost)本地地址访问项目。不可以通过公司内网ip访问,其他团队成员无法访问,这是因为没…

老旧小区用电安全保护装置#限流式防火保护器参数介绍#

摘要 随着居民住宅区用电负荷的增加,用电安全问题日益突出,火灾隐患频繁发生。防火限流式保护器作为一种新型电气安全设备,能够有效预防因电气故障引发的火灾事故。本文介绍了防火限流式保护器的工作原理、技术特点及其在居民住宅区用电系统…

Ftrans数据摆渡系统 搭建安全便捷跨网文件传输通道

一、专业数据摆渡系统对企业的意义 专业的数据摆渡系统对企业具有重要意义,主要体现在以下几个方面‌: 1、‌数据安全性‌:数据摆渡系统通过加密传输、访问控制和审计日志等功能,确保数据在传输和存储过程中的安全性。 2、‌高…

LabVIEW生物医学信号虚拟实验平台

介绍了一款基于LabVIEW的多功能生物医学信号处理实验平台的设计和实现。平台通过实践活动加强学生对理论的理解和应用能力,特别是在心电图(ECG)和脑电图(EEG)的信号处理方面。实验平台包括信号的滤波、特征提取和频谱分析等功能,能直观体验和掌握生物医学…

大数据实验三

Python and anaconda 实验三数据预处理和轨迹聚类参考地址: https://www.hifleet.com/wp/communities/data/hangyundashujujishukechengshiyanzhinanshujuyuchulijiguijijuleichixugengxinzhong#post-2212https://www.hifleet.com/wp/communities/data/hangyundas…

【python因果库实战14】因果生存分析3

标准化生存分析 参见《因果推断》一书第17.5节(“参数化的g公式”)。 在参数化标准化中,也称为“参数化g公式”,时间步k处的生存率是对协变量X水平和处理分配a条件下的条件生存率的加权平均,权重为每个分层中个体的比…