30个常用的lodash工具函数

  1. chunk: 将数组拆分成指定大小的多个数组
function chunk(array, size) {const result = [];for (let i = 0; i < array.length; i += size) {result.push(array.slice(i, i + size));}return result;
}
  1. compact: 过滤数组中的假值(false、null、0、“”、undefined 和 NaN)
function compact(array) {return array.filter(Boolean);
}
  1. concat: 合并多个数组
function concat(...arrays) {return [].concat(...arrays);
}
  1. difference: 返回第一个数组中与其他数组不同的元素
function difference(array, ...values) {const set = new Set([].concat(...values));return array.filter(item => !set.has(item));
}
  1. drop: 从数组的开头删除指定数量的元素
function drop(array, n = 1) {return array.slice(n);
}
  1. dropRight: 从数组的末尾删除指定数量的元素
function dropRight(array, n = 1) {return array.slice(0, -n);
}
  1. fill: 使用指定的值填充数组
function fill(array, value, start = 0, end = array.length) {return array.map((item, index) => (index >= start && index < end) ? value : item);
}
  1. findIndex: 返回第一个满足条件的元素的索引
function findIndex(array, predicate) {for (let i = 0; i < array.length; i++) {if (predicate(array[i], i, array)) {return i;}}return -1;
}
  1. flatten: 扁平化数组
function flatten(array) {return [].concat(...array);
}
  1. fromPairs: 将键值对数组转换为对象
function fromPairs(array) {const result = {};for (const [key, value] of array) {result[key] = value;}return result;
}
  1. head: 返回数组的第一个元素
function head(array) {return array[0];
}
  1. indexOf: 返回指定元素在数组中的索引
function indexOf(array, value, fromIndex = 0) {for (let i = fromIndex; i < array.length; i++) {if (array[i] === value) {return i;}}return -1;
}
  1. initial: 返回数组中除了最后一个元素的所有元素
function initial(array) {return array.slice(0, -1);
}
  1. intersection: 返回多个数组中共同存在的元素
function intersection(...arrays) {const set = new Set(arrays[0]);for (const array of arrays) {set.forEach(item => {if (!array.includes(item)) {set.delete(item);}});}return Array.from(set);
}
  1. join: 将数组转换为字符串并使用指定的分隔符连接
function join(array, separator = ',') {return array.join(separator);
}
  1. last: 返回数组的最后一个元素
function last(array) {return array[array.length - 1];
}
  1. nth: 返回数组中指定索引的元素(支持负数索引)
function nth(array, n = 0) {return n >= 0 ? array[n] : array[array.length + n];
}
  1. pull: 从数组中移除指定的值
function pull(array, ...values) {return array.filter(item => !values.includes(item));
}
  1. reverse: 反转数组的顺序
function reverse(array) {return array.reverse();
}
  1. slice: 返回数组的指定部分
function slice(array, start = 0, end = array.length) {return array.slice(start, end);
}
  1. sortedIndex: 返回指定值在已排序数组中应该插入的索引
function sortedIndex(array, value) {let low = 0;let high = array.length;while (low < high) {const mid = Math.floorlow + high) / 2);if (array[mid] < value) {low = mid + 1;} else {high = mid;}return low;
}

22.: 返回数组除了第一个元素的所有元素

function tail(array) {return array.slice(1);
}
  1. take: 返回数组的前n个元素
function take(array, n = 1) {return array.slice(0, n);
}
  1. union: 返回多个数组的并集
function union(...arrays) {return Array.from(new Set([].concat(...arrays)));
}
  1. uniq: 返回数组中唯一的元素
function uniq(array) {return Array.from(new Set(array));
}
  1. without: 返回数组中除了指定值之外的所有元素
function without(array, ...values) {return array.filter(item => !values.includes(item));
}
  1. xor: 返回多个数组的异或集
function xor(...arrays) {const count = {};for (const array of arrays) {for (const item of array) {count[item] = (count[item] || 0) + 1;}}return Object.keys(count).filter(item => count[item] === 1);
}
  1. zip: 将多个数组按索引合并为一个数组
function zip(...arrays) {const maxLength = Math.max(...arrays.map(array => array.length));const result = [];for (let i = 0; i < maxLength; i++) {result.push(arrays.map(array => array[i]));}return result;
}
  1. countBy: 根据指定条件对数组进行分组计数
function countBy(array, iteratee) {const result = {};for (const item of array) {const key = typeof iteratee === 'function' ? iteratee(item) : item[iteratee];result[key] = (result[key] || 0) + 1;}return result;
}
  1. debounce: 创建一个防抖函数,延迟执行指定的函数
function debounce(func, wait, immediate = false) {let timeout;return function(...args) {const later = () => {timeout = null;if (!immediate) {func.apply(this, args);}};const callNow = immediate && !timeout;clearTimeout(timeout);timeout = setTimeout(later, wait);if (callNow) {func.apply(this, args);}};
}

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

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

相关文章

制作ubuntu-base-23.10-base-armhf的根文件系统rootfs

1、创建一台同版本的ubuntu23的虚拟机 2、下载 ubuntu-base-23.10-base-armhf.tar.gz 3、上传到虚拟机里&#xff0c;解压到rootfs文件夹下 tar -xf /opt/ubuntu-base-23.10-base-armhf.tar.gz -C /opt/rootfs4、安装 qemu&#xff0c;对任何机器运行操作系统的全系统仿真。…

npm 淘宝镜像正式到期

由于node安装插件是从国外服务器下载&#xff0c;如果没有“特殊手法”&#xff0c;就可能会遇到下载速度慢、或其它异常问题。 所以如果npm的服务器在中国就好了&#xff0c;于是我们乐于分享的淘宝团队干了这事。你可以用此只读的淘宝服务代替官方版本&#xff0c;且同步频率…

AsyncLocal是如何实现在Thread直接传值的?

一&#xff1a;背景 1. 讲故事 这个问题的由来是在.NET高级调试训练营第十期分享ThreadStatic底层玩法的时候&#xff0c;有朋友提出了AsyncLocal是如何实现的&#xff0c;虽然做了口头上的表述&#xff0c;但总还是会不具体&#xff0c;所以觉得有必要用文字图表的方式来系统…

百度智能小程序开发平台:SEO关键词推广优化 带完整的搭建教程

移动互联网的普及&#xff0c;小程序成为了众多企业和开发者关注的焦点。百度智能小程序开发平台为开发者提供了一站式的解决方案&#xff0c;帮助企业快速搭建并推广自己的小程序。本文将重点介绍百度智能小程序开发平台的SEO关键词推广优化功能&#xff0c;并带完整的搭建教程…

acwing质数866. 试除法判定质数867. 分解质因数

866. 试除法判定质数 # include <iostream>using namespace std;const int N 100010;int n, i; long long int a;bool isPrim (int a) {if (a < 1)return false;for (int i 2; i < a/i; i)if (a%i 0)return false;return true; }int main () {cin >> n;w…

img标签插入图片下方有空隙,怎么解决?

在写静态页面时&#xff0c;经常会用 img 标签插入图片&#xff0c;但图片插入后&#xff0c;直接在浏览器中运行时&#xff0c;图片的下方经常会有空隙间距&#xff0c;文字或者其它元素不好跟图片对齐&#xff0c;devtools 工具查看的话会很明显。 如下图&#xff1a; 上图…

Coppeliasim倒立摆demo

首先需要将使用Python远程控制的文件导入到文件夹&#xff0c;核心是深蓝色的三个文件。 本版本为4.70&#xff0c;其文件所在位置如下图所示&#xff0c;需要注意的是&#xff0c;目前不支持Ubuntu22的远程api&#xff1a; 双击Sphere这一行的灰色文件&#xff0c;可以看到远程…

【Docker】【深度学习算法】在Docker中使用gunicorn启动多个并行算法服务,优化算法服务:从单进程到并行化

文章目录 优化算法服务&#xff1a;从单进程到并行化单个服务架构多并行服务架构Docker化并指定并行服务数量 优化算法服务&#xff1a;从单进程到并行化 在实际应用中&#xff0c;单个算法服务的并发能力可能无法满足需求。为了提高性能和并发处理能力&#xff0c;我们可以使…

AI 神助攻,协同办公神器 ---- ONLYOFFICE

人工智能不会取代人&#xff0c;只会淘汰那些不会使用人工智能的人。 – 鲁迅 一、人工智能重新定义办公新模式 随着GPT的横空出世&#xff0c;AI的应用场景已经无处不在&#xff0c;从智能客服、智能语音助手、智能家居到自动驾驶汽车等&#xff0c;AI正在不断地拓展其应用领…

Orion-14B-Chat-Plugin [model server error]解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

【大数据安全】大数据安全的挑战与对策基础设施安全

目录 一、大数据安全的挑战与对策 &#xff08;一&#xff09;数据加密技术 &#xff08;二&#xff09;大数据安全与隐私 &#xff08;三&#xff09;大数据安全保障体系 &#xff08;四&#xff09;华为大数据安全解决方案 二、基础设施安全 &#xff08;一&#xff0…

走进CSS过渡效果的奇妙世界:详解CSS Transition

你是否曾在网页上看到一些酷炫的元素在状态变化时平滑而流畅地过渡&#xff1f;这就是CSS过渡效果的魔力所在&#xff01;在这篇博客中&#xff0c;我们将深入探讨CSS Transition&#xff0c;揭示其神奇的原理和如何在你的网页中运用这项技术。 什么是CSS Transition&#xff…

AI-数学-高中-12-对数定义和基本运算规则、对数换底公式

原作者视频&#xff1a;初等函数】4对数定义基本运算规则&#xff08;基础&#xff09;_哔哩哔哩_bilibili 初等函数】5对数换底公式练习&#xff08;基础&#xff09;_哔哩哔哩_bilibili 对数读法&#xff1a;以a为底&#xff0c;b的对数&#xff0c;a为底数&#xff0c;b为…

数据库之九 流程控制、存储过程和函数

【零】数据准备 【1】创建用户信息表 &#xff08;1&#xff09;创建表 id&#xff1a;编号name&#xff1a;用户名sex&#xff1a;性别&#xff0c;默认男balance&#xff1a;余额register_time&#xff1a;注册时间 drop table if exists user; create table user( id in…

KEIL指定文件夹生成:程序名字+版本号+时间的脚本

为了免去每次更新版本还需要手动更改可执行程序的名字繁琐步骤。特此参考网上一个开源脚本编写了一个脚本文件。直接上图&#xff1a; 1.在指定的文件中填写&#xff1a;#define SOFTWARE_VERSION "1.0.2" 2.将脚本添加到如下图所示位置 3.点击编译&#xff0c;得到…

vxe-table3.0的表格树如何做深层查找,返回搜索关键字的树形结构

vxe-table2.0版本是提供深层查找功能的&#xff0c;因为他的数据源本身就是树形结构&#xff0c;所以深层查找查询出来也是树形结构。 但是vxe-table3.0版本为了做虚拟树功能&#xff0c;将整个数据源由树形垂直结构变成了扁平结构&#xff0c;便不提供深层查询功能&#xff0c…

【PWN · ret2syscall】[CISCN 2023 初赛]烧烤摊儿

好久未做ret2syscall 一、题目分析 漏洞点&#xff0c;栈溢出&#xff1a; 然而到该漏洞点&#xff0c;需要“花钱”买下店铺。个人所有的零钱不够。 利用整数溢出&#xff08;emmmm这里应该不算溢出漏洞&#xff0c;而是代码逻辑不规范&#xff0c;商品个数不能为负数&#x…

华为数通方向HCIP-DataCom H12-831题库(简答题01-27)

第01题 第02题 第03题 第04题 第05题 IS-IS是链路状态路由协议,使用SPF算法进行路由计算。某园区同时部署了IPV4和IPv6并运行IS-IS实现网络的互联与通。如图所示,该网络IPV4和IPV6开销相同,R1和R4只支持IPV4缺省情况下,计算形成的IPV6最短路径树中,R2访问R6的下一跳设备是…

uniapp H5 实现上拉刷新 以及 下拉加载

uniapp H5 实现上拉刷新 以及 下拉加载 1. 先上图 下拉加载 2. 上代码 <script>import DragableList from "/components/dragable-list/dragable-list.vue";import {FridApi} from /api/warn.jsexport default {data() {return {tableList: [],loadingHi…

为什么MySQL推荐使用自增主键?

为什么MySQL推荐使用自增主键&#xff1f; 主键数据记录本身被存于主索引&#xff08;一棵BTree&#xff09;的叶子节点上&#xff0c;这就要求同一个叶子节点内&#xff08;大小为一个内存页或磁盘页&#xff09;的各条数据记录按主键顺序存放&#xff0c;因此每当有一条新的记…