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

Lodash-js工具库

1. Lodash 简介

Lodash 是一个现代 实用工具库,提供了许多有用的函数,帮助开发者处理常见的编程任务,如数组操作、对象处理、字符串处理等。Lodash 使得代码更简洁、更高效,极大地提高了开发效率。Lodash 的设计灵感来自于 Underscore.js,但提供了更多的功能和更好的性能。

2. 安装 Lodash

Lodash 可以通过多种方式安装:

  • 具体安装:参考官网

使用 npm 安装

npm i --save lodash

在浏览器环境

<script src="lodash.js"></script>

3. 常用函数示例

3.1 数组操作

_.chunk

将数组分成多个长度为指定大小的数组块。

const _ = require('lodash');const array = [1, 2, 3, 4, 5, 6, 7, 8];
const chunkedArray = _.chunk(array, 2);
console.log(chunkedArray); // [[1, 2], [3, 4], [5, 6], [7, 8]]
_.flatten

将嵌套的数组展开一层。

const array = [1, [2, [3, [4]], 5]];
const flattenedArray = _.flatten(array);
console.log(flattenedArray); // [1, 2, [3, [4]], 5]
_.uniq

移除数组中的重复元素。

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = _.uniq(array);
console.log(uniqueArray); // [1, 2, 3, 4, 5]

3.2 对象操作

_.merge

深度合并两个对象。

const object1 = { a: 1, b: { c: 2 } };
const object2 = { b: { d: 3 } };
const mergedObject = _.merge(object1, object2);
console.log(mergedObject); // { a: 1, b: { c: 2, d: 3 } }
_.get

获取对象中指定路径的值。

const object = { a: { b: { c: 3 } } };
const value = _.get(object, 'a.b.c');
console.log(value); // 3
_.set

设置对象中指定路径的值。

const object = { a: { b: { c: 3 } } };
_.set(object, 'a.b.c', 4);
console.log(object.a.b.c); // 4

3.3 集合操作

_.groupBy

根据指定的条件将集合中的元素分组。

const array = [6.1, 4.2, 6.3];
const groupedByFloor = _.groupBy(array, Math.floor);
console.log(groupedByFloor); // { '4': [4.2], '6': [6.1, 6.3] }
_.map

创建一个新数组,其结果是对每个集合元素执行函数后的返回值。

const array = [1, 2, 3];
const doubledArray = _.map(array, (n) => n * 2);
console.log(doubledArray); // [2, 4, 6]

3.4 函数操作

_.debounce

创建一个防抖动函数,在一定时间内重复调用时,只有最后一次调用的结果会被执行。

const saveInput = _.debounce((value) => {console.log('Saving data', value);
}, 300);document.getElementById('input').addEventListener('input', (event) => {saveInput(event.target.value);
});
_.throttle

创建一个节流函数,在一定时间内只能执行一次。

const updatePosition = _.throttle((event) => {console.log('Mouse position', event.clientX, event.clientY);
}, 100);document.addEventListener('mousemove', updatePosition);

3.5 字符串操作

_.capitalize

将字符串的首字母转换为大写。

const text = 'hello world';
const capitalizedText = _.capitalize(text);
console.log(capitalizedText); // 'Hello world'
_.kebabCase

将字符串转换为 kebab case。

const text = 'Hello World';
const kebabText = _.kebabCase(text);
console.log(kebabText); // 'hello-world'

4. 总结

Lodash 是一个强大的 工具库,提供了许多实用的函数,帮助开发者简化数据操作。无论是数组、对象、集合、函数还是字符串操作,Lodash 都提供了丰富的 API,使得代码更简洁、高效。熟练掌握 Lodash 能显著提高开发效率和代码质量。

相关文章:

Lodash-js工具库

1. Lodash 简介 Lodash 是一个现代 实用工具库&#xff0c;提供了许多有用的函数&#xff0c;帮助开发者处理常见的编程任务&#xff0c;如数组操作、对象处理、字符串处理等。Lodash 使得代码更简洁、更高效&#xff0c;极大地提高了开发效率。Lodash 的设计灵感来自于 Under…...

Makefile实战论(一)

为什么写这个呢&#xff0c;其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景&#xff0c;导致我不是很熟练&#xff0c;或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣&#xff0c;借着demo来分析一下资深工程师写的Makefile&a…...

Hi3861 OpenHarmony嵌入式应用入门--PWM 三色灯

这篇文章是讲解的pwm控制三色灯的部分&#xff0c;这部分也是后续全彩智能灯的基础。 硬件原理如下 IO管脚定义在hi-12f_v1.1.2-规格书-20211202.pdf文档中 GPIO API API名称 说明 unsigned int IoTGpioInit(unsigned int id); GPIO模块初始化 hi_u32 hi_io_set_func(hi_i…...

CH5xx USB下载工具

文章目录 CH5xx USB下载工具1.前言2.介绍3. USB下载4. 串口免按键下载4.SWD下载 CH5xx USB下载工具 1.前言 CH5xx USB下载工具是一款专为沁恒 CH5xx系列 BLE SOC设计的程序的下载工具。这款工具与串口下载相比较&#xff0c;不仅提供了稳定的数据传输能力&#xff0c;而且提高…...

问题1.用PGP解密出keybox.xml,过程中报“Can‘t check signature: No public key”如图,这个正常吗?如何解决?

问题1.我要写Google attenstation key到设备。就需要keybox.xml生成keybox.kdb文件。而测试机构给我们的是加密的文件&#xff0c;需要用PGP解密出keybox.xml&#xff0c;过程中报“Can’t check signature: No public key”如图&#xff0c;这个正常吗&#xff1f;如何解决&am…...

网络物理隔离后 可以用保密U盘进行数据安全交换吗?

企业用的保密U盘通常被设计用于存储和传输敏感信息&#xff0c;以确保数据的安全和保密性。 在网络之间实现了物理隔离后&#xff0c;使用保密U盘进行数据安全交换是一种常见的做法。物理隔离确保了两个网络之间的完全分离&#xff0c;因此使用保密U盘可以作为一种安全的手段来…...

机械臂 CoppeliaSim Simulink联合仿真

实现机械臂在CoppeliaSim&#xff08;以前称为V-REP&#xff09;和Simulink上的联合仿真涉及多个步骤&#xff0c;包括环境设置、模型导入、通信配置、控制算法设计和测试调试。 前期准备 安装软件配置工作环境创建和配置CoppeliaSim场景 导入机械臂模型配置机械臂参数在Simuli…...

MySQL数据库(一):数据库介绍与安装

在嵌入式开发中&#xff0c;数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等&#xff0c;应用于智能家居、工业控制、车载系统和物联网设备&#xff0c;提升了系统功…...

天津媒体邀约,及媒体名单?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 天津作为中国北方的重要城市&#xff0c;拥有丰富的媒体资…...

Java | Leetcode Java题解之第168题Excel表列名称

题目&#xff1a; 题解&#xff1a; class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…...

代码随想录算法训练营刷题复习10:二叉树、二叉搜索树复习2

二叉树、二叉搜索树 力扣题复习 110. 平衡二叉树257. 二叉树的所有路径404. 左叶子之和513. 找树左下角的值112.路径之和113.路经总和ii450. 删除二叉搜索树中的节点701. 二叉搜索树中的插入操作 110. 平衡二叉树 左右子树高度差要小于1 ->递归调用&#xff08;need新的函…...

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)。 金属有机框架(MOF)因其孔隙率大、表面积大和出色的可调性而用于许多化学应用。然而,在利用 AI 深入探索 MOF 设计与性能优化的研究征途中,科学家们正面临着前所未有的挑战。…...

【Linux】环境基础开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile)

文章目录 Linux 软件包管理器 yumLinux开发工具Linux编辑器-vim使用vim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总批量化注释和批量化去注释vim简单的配置解决一个小问题 Linux编译器-gcc/g作用gcc/g 语法预处理编译汇编链接什么是函数库 Linux调…...

Linux基础二

目录 一&#xff0c;tail查看文件尾部指令 二&#xff0c;date显示日期指令 三&#xff0c;cal查看日历指令 四&#xff0c;find搜索指令 五&#xff0c;grep 查找指令 六&#xff0c;> 和>> 重定向输出指令 七&#xff0c; | 管道指令 八&#xff0c;&&逻辑控…...

Linux运维面试--yum安装和编译安装区别

风吹哪页读哪页&#xff0c;花开何时看何时。 目录 # 1.安装方式差异 ## 1.1 yum安装 ## 1.2 源码编译安装 # 2.优缺点分析 ## 2.1 yum安装优缺点 ### 2.1.1 yum安装优点 ### 2.1.2 yum安装缺点 ## 2.2 源码安装优缺点 ### 2.2.1 源码安装优点 ### 2.2.2 源码安装缺点…...

redis 的内存尽量不要超过 10g,超过 10g 可能会有问题

在使用Redis时&#xff0c;内存大小的限制通常取决于多种因素&#xff0c;包括但不限于&#xff1a; 1. **物理内存**&#xff1a;服务器的总内存大小限制了Redis可以使用的最大内存。 2. **操作系统限制**&#xff1a;操作系统可能对单个进程可以使用的内存有限制。 3. **Red…...

力扣(2024.06.23)

1. 62——不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。问总共有多少条不同的路径&a…...

OpenCV颜色检测

OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言 绿幕技术是一种经典的视频编辑技术&#xff0c;可以用于将人物置于不同的背景中。例如在电影制作中&#xff0c;技术的关键在于演员不能身着特定颜色的衣服(比如绿色)&#xff0c;站在只有绿色的背景前。然后&a…...

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程&#xff08;推荐&#xff09; 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…...

AI-人工智能指数报告(四):科学、医学与教育

背景&#xff1a; 从2017年开始&#xff0c;斯坦福大学人工智能研究所&#xff08;HAI&#xff09;每年都会发布一份人工智能的研究报告&#xff0c;人工智能指数报告&#xff08;AII&#xff09;&#xff0c;对上一年人工智能相关的数据进行跟踪、整理、提炼并进行可视化。这份…...

从查表到公式:PT100温度转换的两种实现(附STM32+MAX31865完整代码)

从查表到公式&#xff1a;PT100温度转换的两种实现&#xff08;附STM32MAX31865完整代码&#xff09; 在工业测量和精密温度控制领域&#xff0c;PT100铂电阻因其出色的稳定性和线性度成为温度传感的首选。当工程师通过MAX31865芯片获取到PT100的电阻值后&#xff0c;如何高效准…...

别只刷题了!用Python/C++搞定考研机试高频算法(附PIPIOJ真题代码重构与优化)

从暴力解法到优雅实现&#xff1a;Python/C双语言拆解考研机试高频算法 考研机试不仅考察算法理解&#xff0c;更检验工程化编码能力。许多考生能写出正确但冗长的代码&#xff0c;却在时间优化和代码简洁性上失分。本文将用Python和C对比实现六大高频题型&#xff0c;重点分析…...

利用快马平台与vscode codex快速构建react待办事项应用原型

最近在尝试用AI工具快速验证产品原型&#xff0c;发现InsCode(快马)平台配合VSCode Codex能实现惊人的开发效率。以React待办事项应用为例&#xff0c;从零到可交互原型只用了不到10分钟&#xff0c;分享下具体实现思路和操作过程。 需求拆解与AI描述 首先将待办事项应用的7个核…...

HARMONYOS应用实例258:反比例函数图像

反比例函数图像 功能:绘制双曲线,点击图像上的点显示坐标,验证 xy=kxy=kxy=k 的恒等关系。 应用功能: 绘制反比例函数双曲线图像 y = k/x 可调节k值,范围从1到20...

Gemma-3-270m内网穿透部署方案

Gemma-3-270m内网穿透部署方案&#xff1a;安全打通企业AI服务 想象一下这个场景&#xff1a;你们公司的研发团队刚刚在内部服务器上部署了轻量高效的Gemma-3-270m模型&#xff0c;准备用它来优化客服工单分类、自动生成产品文档。模型跑起来了&#xff0c;效果也不错&#xf…...

PMOS 在电源管理中的高效应用

1. PMOS在高侧开关中的天然优势 我第一次用PMOS做高侧开关是在一个车载设备项目里。当时需要控制12V电源的通断&#xff0c;尝试了几种方案后&#xff0c;发现PMOS简直是这个场景的"天选之子"。相比NMOS&#xff0c;PMOS最大的优势就是控制逻辑简单直接——栅极拉低导…...

3个关键步骤:如何用Bilibili-Evolved打造60fps流畅播放体验

3个关键步骤&#xff1a;如何用Bilibili-Evolved打造60fps流畅播放体验 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved Bilibili-Evolved作为一款强大的哔哩哔哩增强脚本&#xff0c;为追求极…...

VxLAN网络如何“破圈”?聊聊Type5路由在云网融合中的真实应用场景

VxLAN Type5路由&#xff1a;云网融合时代的智能连接引擎 在数字化转型浪潮中&#xff0c;企业网络架构正经历着从传统三层架构向云原生网络的跃迁。VxLAN作为新一代网络虚拟化技术的代表&#xff0c;其Type5路由功能正在成为打通云网边界的关键推手。想象一下这样的场景&#…...

实战应用:基于快马AI与OpenClaw构建Mac本地电商价格监控系统

最近在做一个电商价格监控的小工具&#xff0c;发现用OpenClaw配合Mac本地环境搭建特别方便。这里分享一下我的实战经验&#xff0c;希望能帮到有类似需求的同学。 为什么选择OpenClaw OpenClaw是个轻量级的Python爬虫框架&#xff0c;特别适合需要快速搭建数据采集系统的场景…...

ECharts 5.4.3实战:3步打造科技感爆棚的流光折线图(附完整代码)

ECharts 5.4.3实战&#xff1a;3步打造科技感爆棚的流光折线图&#xff08;附完整代码&#xff09; 在数据可视化领域&#xff0c;ECharts凭借其强大的功能和灵活的配置选项&#xff0c;已经成为前端开发者的首选工具之一。特别是其丰富的动画效果&#xff0c;能够为静态数据注…...