Lodash常用方法

Lodash.js常用方法总结 在上一篇文章中,我简要介绍了 Lodash 库中几个用于数组处理的方法,很高兴能得到大家的关注。在这篇文章里,我将为大家总结一些更为常用的数组处理方法 ,希望能给大家带来更多帮助。 阅读详情

1. cloneDeep(value)

用途

深度克隆一个对象或数组,确保复制后的对象与原始数据完全脱离引用关系。

使用示例

import cloneDeep from 'lodash/cloneDeep'
​
const obj = { a: 1, b: { c: 2 } }
const copy = cloneDeep(obj)
copy.b.c = 100
console.log(obj.b.c) // 仍为 2,未被修改

原理简析

Lodash 的 cloneDeep 采用递归方式对输入数据进行遍历复制,处理以下类型:

  • 基本类型

  • 嵌套对象/数组

  • Map / Set / Date / RegExp 等特殊对象

内部使用的是深度优先遍历+类型判断,并处理了循环引用的情况(通过一个 WeakMap 记录已遍历对象)。

适用场景

  • Vue、React 中使用状态复制避免数据联动污染

  • Redux reducer 中不可变数据处理

  • 表单或复杂组件状态回滚

替代方法

  • structuredClone(obj):原生 API(支持较新浏览器)
    
    JSON.parse(JSON.stringify(obj)):仅适用于无循环引用、无函数、无 Date/RegExp 的对象


2. debounce(func, wait, options)

用途

防抖操作:触发事件后延迟执行,若在延迟期间被再次触发,则重置计时器。

使用示例

import debounce from 'lodash/debounce'
​
const search = debounce((value) => {
  console.log('searching:', value)
}, 500)
​
input.addEventListener('input', (e) => search(e.target.value))

原理简析

利用 setTimeout 实现延迟调用,在函数被重复调用时清除前一次的定时器,并重新设置新的定时器。若设置了 leading 选项,则在首次触发时立即执行。

function debounce(fn, delay) {
  let timer
  return function (...args) {
    clearTimeout(timer)
    timer = setTimeout(() => fn.apply(this, args), delay)
  }
}

适用场景

  • 搜索框实时输入

  • 滚动监听中优化频繁触发事件

  • 调用频率高的按钮事件

替代方法

  • 自定义 debounce 函数(适用于简单场景)

  • 使用 requestAnimationFrame 结合节流思路处理 UI 性能


3. uniq(array)

用途

数组去重,返回一个不包含重复值的新数组。

使用示例

import uniq from 'lodash/uniq'
​
const arr = [1, 2, 2, 3, 4, 4]
console.log(uniq(arr)) // [1, 2, 3, 4]

原理简析

内部通过 Set 或索引判断元素是否已出现:

function uniq(arr) {
  return Array.from(new Set(arr))
}

或者用 indexOf 兼容早期浏览器。

适用场景

  • 数据列表清洗(如标签、关键字)

  • 表单输入去重

  • 数据比较与集合处理

替代方法

原生 Set:

[...new Set(arr)]

手写 filter + indexOf 实现:

arr.filter((v, i, self) => self.indexOf(v) === i)

其他常用 Lodash 方法简要说明

方法名作用说明示例用途
throttle函数节流,固定时间执行一次滚动监听、页面 resize
get安全获取嵌套属性get(obj, 'a.b.c', null)
set安全设置嵌套属性set(obj, 'a.b.c', 123)
pick从对象中选择指定字段pick(user, ['id', 'name'])
omit从对象中排除某些字段omit(user, ['password'])
merge深度合并两个对象多对象配置合并
isEqual深度比较两个值是否相等React props 比较优化
groupBy将集合按条件分组数据聚合、表格分组
find查找集合中符合条件的第一个元素用户查找、配置匹配
flatten数组扁平化处理处理嵌套数组


使用 Lodash 的建议

  1. 按需引入:避免引入整个 lodash 包(可使用 lodash-es 或 babel 插件优化 tree-shaking)。

  2. 能用原生就用原生:如 uniq 和 Set。

  3. 复杂对象处理优先考虑 Lodash:如 cloneDeep、merge、get,可极大提升代码健壮性。

  4. 高频事件务必使用防抖/节流:避免性能问题。


总结

方法优点替代方案
cloneDeep安全、强大,能处理循环引用structuredClone、手写递归
debounce控制频繁触发,参数灵活手写版 debounce
uniq快速数组去重Set、filter + indexOf
JavaScript lodash常见用法系列小结 lodash一开始是Underscore.js库的一个fork,因为和其他(Underscore.js的)贡献者意见相左。John-David Dalton的最初目标,是提供更多“一致的跨浏览器行为……,并改善性能”。之后,该项目在现有成功的基础之上取得了更大的成果,并于一月份发布了3.0版本。 下面给大家说下javascript lodash知识,具体详情如下所示: 1 _.compact用法 _.compact([0, 1, false, 2, '', 3,'mm']); var test = _.compact([-1,0, 1, false, 2, '', 3,'jj']); c 立即下载

相关推荐

从分立到集成:深入解析Buck电路的核心模块与设计权衡

本文深入解析Buck电路的核心模块与设计权衡,从分立到集成方案的优缺点对比。详细探讨Buck电路的高效能量转换、小型化设计及灵活电压调节能力,并结合实际案例分享分立方案中的PWM生成、反馈环路设计及保护电路优化经验,为工程师提供实用设计参考。

weixin_29306317的博客 223

Lodash 使用及常用方法

Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 Lodash 的模块化方法 非常适用于: 1.遍历 array、object 和 string 2.对值进行操作和检测 3.创建符合功能的函数

ShIcily的博客 1万+

Lora无线温湿度传感器方案

综上所述,Lora无线温湿度传感器以其长距离传输、低功耗、高稳定性、精准测量、无线传输以及广泛的应用场景等特点,在环境监测领域展现出了强大的竞争力和广泛的应用前景。Lora无线温湿度传感器广泛应用于各种需要远程监控和数据采集的场景,如仓储、农业、机房、楼宇、交通、工业、矿产、电力等领域。Lora无线温湿度传感器是一种采用Lora无线通信技术进行数据传输的温湿度监测设备。四、产品参数(以某款工业级Lora温湿度传感器为例)

weixin_46632654的博客 759

lodash常用方法汇总

lodash常用方法汇总 引入: import _ from 'lodash' 官方中文文档:https://www.lodashjs.com/ 对象 _.get (object, path, [defaultValue]) 说明: ​ 根据 object对象的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。 参数 object (Object): 要检索的对象。 path (Array|string): 要获取属性的路径。 [defaultVal

qiqilovehcy的博客 6177

Ansys Zemax与Speos协同设计:HUD系统从光学优化到驾驶视觉验证全流程解析

本文详细解析了如何利用Ansys Zemax与Speos协同工作流,完成HUD系统从光学内核优化到驾驶视觉验证的全流程。通过Zemax进行精密光学设计与像差校正,再通过Speos进行HOA定量分析和虚拟驾驶舱仿真,实现了数据无损流转与验证闭环,有效解决了光学性能与视觉感知脱节的核心问题,显著提升HUD设计效率与可靠性。

git9versioner的博客 530

矩阵管理:一人100账号霸屏小红书,保姆级教程经验技巧

同时,如果你的账号表现很正常,很OK,它也增加账号权重。手机环境:一机一卡一号是基本操作,如果你觉得设备成本高,你就要知道WIN的云真机,一键新机,一键随机设备参数,一键还原,一键安装应用,自带批量发布笔记,私信聚合,自带回复私信,一键养号等等,一人批量注册100个小红书账号真的很简单!从流量逻辑来分析,大家有没有发现,从账号粉丝数来看,小红书很难出现类似抖音上超千万粉丝量级的账号,几十万粉丝的博主已经是头部账号了,原因在于,抖音的流量分发机制是80%的流量集中在 20% 的头部账号而。

FDF432DF的博客 5145

lodashjs常用方法整理

lodash是一个功能强大的JavaScript实用工具库,主要用于简化常见的编程任务,提供了一系列实用的函数来处理数组、对象、字符串等数据类型‌npm install lodash// 使用CommonJS方式引入 const _ = require('lodash'); // 或者使用ES6模块化引入 import _ from 'lodash';将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个

weixin_60166905的博客 1764

若依框架整合Flowable:从零构建企业级流程中心

本文详细介绍了如何将若依框架与Flowable工作流引擎整合,构建企业级流程中心。通过环境配置、依赖添加、数据库设置等核心步骤,实现流程定义管理、任务处理服务等关键功能,并结合实际案例展示请假审批流程的实现与动态表单集成。文章还提供了性能优化和生产建议,帮助开发者高效构建稳定可靠的工作流系统。

weixin_28365523的博客 230

Lodash的常用方法整理

以上是 Lodash 中一些常用函数的详细解释和示例代码。这些函数可以帮助你在处理数据时更加高效和简洁。如果你有任何进一步的问题或需要更多的示例,请随时提问!

陌上花开然不归矣 2758

解决pd.read_json报错ValueError: Trailing data问题

首先,我们使用open函数打开JSON文件,然后使用json.load函数将JSON文件数据解码为Python对象。在使用Python进行数据处理中,我们经常需要将JSON格式的数据读入到DataFrame中进行处理。而使用pandas库的read_json函数,就可以方便地将JSON数据读入到DataFrame中。但是有时候在读取JSON数据时,会遇到一个非常常见的错误:ValueError: Trailing data。这个错误的解决方案并不难,只需要在read_json中添加一个参数即可。

学习使你进步。 2234

【30天从零玩转AI应用开发】第16篇:智能体Agent入门——ReAct框架原理+首个会思考、会动手的AI实战

摘要: 本文介绍了AI智能体(Agent)的核心概念及其与普通大模型(LLM)的区别。通过ReAct(Reason+Act)框架,智能体实现了自主思考、调用工具和分步执行的能力。文章详细讲解了LangChain Agent的四大组件,并推荐新手使用ZERO_SHOT_REACT_DESCRIPTION类型。最后提供了一个完整的智能体实战代码示例,该智能体具备数学计算和天气查询功能,能够自主选择工具完成任务,展示了AI从”被动回答“到”主动行动“的关键进化。

在上海谋生的软件喵记录喵生 626

常用的lodash方法

lodash常用方法将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。 2_.cloneDeep(value) “深拷贝” 这个方法类似_.clone,除了它会递归拷贝 value。(注:也叫深拷贝)。 3_.compact(array) “过滤假值” 创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, “”, undefined, 和 NaN 都是被认为是“假值”

Town_boy的博客 7906

SkillWeaver:自主进化的Web智能体框架,通过技能发现与组合实现能力迭代——让AI像人类一样“学习-实践-积累”,构建可扩展的技能库

SkillWeaver重新定义了Web智能体的“学习-实践”循环,使其从被动执行者进化为主动进化者。通过技能的持续积累与组合,智能体不仅能应对已知任务,更能探索未知场景,为自动化与AI的深度融合开辟了新路径。随着框架的成熟与社区的扩展,我们或许正见证着下一代智能体基础设施的诞生。传统Web机器人(Web Agents)依赖预设脚本或静态规则执行任务,但面对动态变化的网站结构、复杂交互逻辑时,其能力边界明显。的闭环机制,使智能体能像人类学习技能一样,不断扩展自身能力,适应新场景。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 320

lodash一些常用方法

lodash常用的一些方法 首先要明白的是lodash的所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据。类似immutable.js的理念去处理。 lodash是一套工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。 lodash的引用 import _ from 'lodash' 用一个数组遍历来说明为什么要使用lodash 常规数组遍历 agent.forEach(function (n,key) { agent[key].agent_id = age

qq_21138747的博客 2217

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vue3-TS-Lodash:理解Lodash / 常用方法积累

但是,如果你在使用TypeScript时遇到了与Lodash相关的类型错误或警告,请确保你的tsconfig.json文件配置正确。特别是,如果你的项目中使用了ES模块导入方式,并且遇到了默认导入的警告,你可能需要在tsconfig.json中添加以下配置。它提供了大量的函数来帮助你处理数组、数值、对象、字符串等,使你的代码更加简洁、易读和高效。这样做的好处是可以只引入你需要的函数,从而减小项目的打包体积。但请注意,这种方式虽然方便,但可能会增加项目的打包体积,因为Lodash是一个相对较大的库。

snow的博客 3392

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Lodash常用方法介绍

Lodash常用方法介绍

前端金牌摸鱼达人 28万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

lodash常用方法

lodash常用方法安装数组处理方法1、_.chunk(array, [size=1])2、_.drop(array, [n=1])3、_.dropRight(array, [n=1])4、_.fill(array, value, [start=0], [end=array.length])`(*会改变原始数组 array)`5、_.flatten(array)、_.flattenDeep(array)、_.flattenDepth(array, [depth=1])6、_.pull(array, valu

Rex的博客 1897

JS lodash库在开发中常用到的方法

一.摘要 lodash是JS一个开箱即用的库函数,里面对于在日常开发中常用到的方法都是已经封装好的,使用起来非常方便,本篇记录了在日常开发过程总经常用的方法,就大概记录一下,具体请参考lodash的官方API:lodash官方API 二.常用方法 get import { get } from 'lodash' // 从一个变量中取值,第一参数表示变量,第二个表示该节点对应的名称,第三个参数表示当取不到的时候设置的默认值 const a1 = get(nextProps, 'treeVal'.

GodLoveMe的博客 1334

lodash 常用方法总结

lodash.keyslodash.valueslodash.getlodash.islodash.isEmptylodash.isNumberlodash.isEquallodash.isPlainObject()lodash.isNil()lodash.isEquallodash.findlodash.filterlodash.forEachlodash.maplodash.chainloads.haslodash.set( object, path, value)lodash.somelodash.h

2201_75483179的博客 183

lodash常用的一些方法

lodash常用的一些方法 首先要明白的是lodash的所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据。类似immutable.js的理念去处理。 lodash是一套工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。 lodash的引用 import _ from 'lodash' <script src="https://cdn.bootcss.com/lodash.js/4.17.11/lodash.js"></script&gt

Aaron的博客 1686

JavaScript库之Lodash常用方法

积累了loash最近常用的一些方法。

陌上花开然不归矣 831

Lodash 中前端开发常用的方法列表及注释

lodash

Angelclouds的博客 534

lodash使用及常用方法

lodash使用及常用方法

qq_45442600的博客 1837
上一篇: watch 、watchEffect 、computed
下一篇: Vue 3 响应式变量笔记
BugCollect
博客等级 码龄1年 104粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值