兼容Lodash的真正替代者

大家好,我是农村程序员,独立开发者,前端之虎陈随易。

个人网站

这是我的个人网站:https://chensuiyi.me,欢迎一起交朋友~


es-toolkit首页

今天给大家分享一个前端工具库 Lodash 的替代品 es-toolkit

仓库地址:https://github.com/toss/es-toolkit

有人可能要纳闷了,年年那么多替代品,年年都替代不了,别浪费时间了。

哎,请留步,这回还真有替代的可能性,请听我这个前端记者,娓娓道来。

咳咳,众所周知 (开始了),Lodash 是踩着 Underscore 的肩膀上来的。

什么?Underscore 你也不知道?那你得多看看我的文章,涨涨见识。

Underscore 是一个 JavaScript 工具库,于2009年首次发布,它为 JavaScript 开发者提供了一系列有用的函数式编程工具。

简单来说,Underscore 是 JavaScript 广为流传的函数工具库的开山鼻祖。

Lodash 的诞生 2012 年,John-David Dalton 创建了 Underscore 的一个分支,并将其命名为 Lo-Dash (后来改名为 Lodash)。

Lodash 最初被推广为 Underscore 的替代品,提供了更好的性能和额外的功能。

正式发布 Lodash 的第一个版本于 2012年4月23日 正式发布,这标志着 Lodash 作为一个独立项目的开始。

截至文本发布 (2024年10月21日),Lodash 的最新稳定版本是 4.17.21,而且已经在这个版本停留了4年之久。

正所谓,一鲸落,万物生,时代的发展,技术的演进,更加先进的函数工具库,纷纷如雨后春笋一般冒了出来。

不过呢,也反映了一个问题,开源不是一个简单的事情,用爱发电终究也会有电量不足的时候。

那么,继承者们 都有哪些呢?这是本文发表时,笔者查到的数据。

  1. Ramda 代码最后提交于 2 个月前,最后发版于 5 个月前。
  2. Rambda 代码最后提交于 1 个月前,最后发版于 2 个月前。
  3. Radash 代码最后提交于 7 个月前,最后发版于 7 个月前。
  4. nodash 代码已存档,无人维护。
  5. moderndash 代码最后提交于 4 个月前,最后发版于 5 个月前。
  6. es-toolkit 代码最后提交于10分钟前,最后发版于5天前。

光从代码的维护,更新上来说,笔者今天推荐的 es-toolkit 是数据最健康的。

那么,再来看看功能。

首先看看 es-toolkit 的口号:

现代 JavaScript 实用程序库,速度提高了 2-3 倍,体积缩小了 97%,这是对 lodash 的重大升级。

非常地振奋人心。

es-toolkit的github截图

再来看看其他数据,6500star109个贡献者100%的测试覆盖率,数据很不错。

最吸引我的地方呢,就是可以和 Lodash 无缝迁移。

与Lodash兼容

与Lodash兼容

由于目前还在发展开发中,所以兼容函数还没有完全覆盖。

不过每次发版我都看了更新日志,都会有一些新的函数、兼容、性能、BUG 方面的处理。

只要勤快地维护,假以时日,必成最终赢家。

目前我已经用在了我自己的项目中,期待 es-toolkit 越来越好。

希望大家可以给它点点 star,提供一些鼓励和支持,仓库地址:https://github.com/toss/es-toolkit


本文由前端记者,前端之虎陈随易 撰稿。

如果你有好的作品、工具、内容、项目等推荐,欢迎从笔者的网站 https://chensuiyi.me 联系我,我们下次再见~

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

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

相关文章

鼠标增强工具 MousePlus v5.3.9.0 中文绿色版

MousePlus 是一款功能强大的鼠标增强工具,它可以帮助用户提高鼠标操作效率和精准度。该软件可以自定义鼠标的各种功能和行为,让用户根据自己的习惯和需求来调整鼠标的表现。 详细功能 自定义鼠标按钮功能:可以为鼠标的各个按钮设置不同的功能…

基于SpringBoot+Vue+MySQL的中药材进存销管理系统

系统展示 系统背景 中药材在医疗保健领域具有重要地位,随着中药材市场的不断发展,对中药材的进存销管理提出了更高的要求。传统的管理方式效率低下,容易出现错误和漏洞,无法满足快速发展的市场需求。因此,开发一套集成…

C#DLL热加载|动态替换

我有一个项目 开始取数据和结束数据部分是一样的,但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…

Nginx+Tomcat 动静分离

1. NginxTomcat 环境 Nginx 处理静态资源的优势同样可以应用在 Tomcat 环境中 。从实现方法上来说,NginxTomcat 环境的搭建思路与前面完成的 NginxApache 环境是完全相同的,只需要将 Nginx 与 Tomcat 的站点文档目录配置到同一目录下,利用 N…

什么是SMO算法

SMO算法(Sequential Minimal Optimization) 是一种用于求解 支持向量机(SVM) 二次规划对偶问题的优化算法。它由 John Platt 在 1998 年提出,目的是快速解决 SVM 的优化问题,特别是当数据集较大时&#xff…

npm安装过程的问题

报错信息C:\Users\lyyds>npm list -global npm error code ENOENT npm error syscall lstat npm error path D:\nodejs\node_global npm error errno -4058 npm error enoent ENOENT: no such file or directory, lstat D:\nodejs\node_global npm error enoent This is rel…

数通自学——VLAN虚拟局域网,eNSP实验讲解

VLAN虚拟局域网,eNSP实验讲解 一、概念二、eNSP仿真实验1、实验一:vlan演示(交换机端口access模式)2、实验二:vlan演示(交换机端口trunk模式) 一、概念 VLAN(Virtual Local Area Ne…

HarmonyOS应用开发者中级认证——中级闯关习题参考答案大全

文章目录 HarmonyOS第一课 ArkUI进阶判断题单选题多选题 HarmonyOS第一课 应用程序框架进阶判断题单选题多选题 HarmonyOS第一课 合理使用动画和转场判断题单选题多选题 HarmonyOS第一课 Web组件和WebView判断题单选题多选题 HarmonyOS第一课 给应用添加通知和提醒判断题单选题…

SQL-lab靶场less1-4

说明:部分内容来源于网络,如有侵权联系删除 前情提要:搭建sql-lab本地靶场的时候发现一些致命的报错: 这个程序只能在php 5.x上运行,在php 7及更高版本上,函数“mysql_query”和一些相关函数被删除&#xf…

java中的二叉树

二叉树 树型结构概念相关概念树的表示形式树的应用 二叉树概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作前置说明二叉树的遍历二叉树的基本操作 二叉树相关OJ题 树型结构 概念 树是一种非线性的的数据结构,它是由n(n>0)个有限结点组成一个具有…

贵州鑫宏远农业-始终致力于推动现代农业的科技创新与发展

贵州鑫宏远农业科技有限公司,是一家在高科技农业领域深耕细作、锐意进取的企业。自成立以来,我们始终致力于推动现代农业的科技创新与发展,业务全面覆盖农业科学研发、组织培养生产、专业育苗培植、半成品及成品精细化养护、市场销售以及全方…

数组与 ArrayList 有什么区别?

数组是一种基本的数据结构,在 Java 中,数组是一段连续的内存空间,用来存储固定数量的同类型元素。 数组的大小在创建时确定,并且在之后不可改变。 特点: 固定大小:数组的长度是固定的,一旦创…

RPA技术重塑企业自动化的未来

1. RPA定义与原理 1.1 机器人流程自动化(RPA)概念 机器人流程自动化(Robotic Process Automation,简称RPA)是一种软件技术,通过模拟人类用户在计算机界面上的操作来执行重复性的业务流程任务。RPA软件机器人能够自动执行基于规则…

对比两个el-table,差异数据突显标记

前言 在数据分析和数据处理的过程中,经常需要对比两个数据集,以便发现其中的差异和变化。本文将介绍如何使用 el-table 组件来对比两个数据集,并通过差异数据的突显标记,帮助用户更直观地理解数据的变化。 cell-style 属性 其实利…

如何用 obdiag 排查 OceanBase数据库的卡合并问题——《OceanBase诊断系列》14

1. 背景 卡合并在OceanBase中是一个复杂的问题,其产生可能源于多种因素。目前,对于卡合并的明确界定尚不存在统一标准,一方面,我们界定超过36小时未完成合并为合并超时,此时RS会记录ERROR日志;另一方面&am…

4个硬盘数据修复攻略:让你的数据失而复得。

据统计,在硬盘数据丢失的情况当中,有7成是因误删除、格式化和病毒攻击导致的。并且对与很多人来说,数据丢失是一个不小的问题。今天我就给大家分享几款能够帮助硬盘恢复数据的工具,希望能够在数据丢失是减小大家的焦虑。 1、福昕硬…

mac nwjs程序签名公证(其他mac程序也一样适用)

为什么需要公证 mac os14.5之后的系统,如果不对应用进行公证,安装,打开,权限使用上都会存在问题,而且有些问题你强制开启(sudo spctl --master-disable)使用后可能会有另外的问题, …

Python+pytest接口自动化之session会话保持的实现

前言 在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢?我们可以通过Cookie绕过登录,其实这就是保持登录状态的方法之一。那么今天笔者想讲通过session进行会话保持…

衡石分析平台系统分析人员手册-导入图表库图表

导入图表库图表​ 本文讲述在仪表盘中如何使用图表库图表,如果您还不了解图表库,请先点击链接了解它的功能和作用。 在数据集市中建立图表库后,分析人员可以在应用创作中引用图表库图表,快速的进行数据分析工作。 导入图表库图…

java第三天(游戏开发)

学到 双缓存机制 public void paint(Graphics g) {// super.paint(g);//createImage(width, height) 是一个方法调用,它创建了一个指定宽度和高度的空图像缓冲区。这个方//法可以在 Component 类中找到,因此任何从 Component 继承的类(比…