JS中数组方法详解

ZYNQ平台上基于SGMII接口的IEEE1588/PTP协议高效实现方案 本文深入探讨了在Xilinx ZYNQ平台上,利用SGMII接口实现高精度IEEE1588/PTP协议的方案。通过将硬件时间戳单元集成在PL端的AXI以太网子系统IP核中,该方案绕过了软件协议栈和外部PHY的延迟,实现了亚微秒级的时间同步精度。文章详细解析了硬件设计、Vivado IP配置、Linux驱动移植及PTP协议栈部署等关键步骤,为工业控制、通信等领域的高精度网络同步提供了高效、灵活的解决路径。 阅读详情

JS中数组的方法有很多,但是自己一直没有抽时间进行整理分类,故单独写一篇博文,对目前我所掌握的JS中数组相关的方法进行整理,夯实一下自己的基础。

我将数组相关的方法分为两类

1.方法会改变原数组

相应的方法有:shift、unshift、pop、push、reverse、sort、splice
shift:将第一个元素删除并且返回删除元素,空即为undefined

var arr = [1,2,3,4];
var res = arr.shift();
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (3) [2, 3, 4]
//res: 1

unshift:向数组开头添加元素,并返回新的长度

var arr = [1,2,3,4];
var res = arr.unshift(33);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (5) [33, 1, 2, 3, 4]
//res: 5

pop:删除最后一个并返回删除的元素

var arr = [1,2,3,4];
var res = arr.pop();
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (3) [1, 2, 3]
//res: 4

push:向数组末尾添加元素,并返回新的长度

var arr = [1,2,3,4];
var res = arr.push(88);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (5) [1, 2, 3, 4, 88]
//res: 5

reverse:颠倒数组顺序

var arr = [1,2,3,4];
var res = arr.reverse();
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [4, 3, 2, 1]
//res: (4) [4, 3, 2, 1]

sort:对数组排序
注意–默认是按照字符编码的顺序对数组中的元素进行排序

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

默认按照字符编码排序

var arr = [10,3,20,41];     
var res = arr.sort();
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [10, 20, 3, 41]
//res: (4) [10, 20, 3, 41]

给予排序函数,从大到小排序

var arr = [10,3,20,41];     
var res = arr.sort((a,b)=>(a-b));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [3, 10, 20, 41]
//res: (4) [3, 10, 20, 41]

给予排序函数,从大到小排序

var arr = [10,3,20,41];     
var res = arr.sort((a,b)=>(b-a));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [41, 20, 10, 3]
//res: (4) [41, 20, 10, 3]

splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组

这个方法还是很强大的,有三个参数,下面我将依次尝试不同参数个数时该函数的效果

一个参数:从start开始删除元素,返回删除的元素数组

var arr = [1,2,8,4,5];      
var res = arr.splice(2);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (2) [1, 2]
//res: (3) [8, 4, 5]

两个参数:从start开始删除length个元素,返回删除的元素数组

var arr = [1,2,8,4,5];      
var res = arr.splice(2,2);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (3) [1, 2, 5]
//res: (3) [8, 4]

三个以上参数:从start开始删除length个元素,并将item及item后的参数从index处插入到数组中

var arr = [1,2,8,4,5];      
var res = arr.splice(2,1,9,9);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (6) [1, 2, 9, 9, 4, 5]
//res: [8]

2.方法不会改变原数组

相应的方法有:forEach,map,every, some,concat,filter , slice ,indexOf,find,findIndex,join,reduce

forEach:没有返回值(undefined),循环调用回调函数会处理每一项,且无法正常退出循环,除非抛出异常

var  arr = [1,2,3];
var  res = arr.forEach((val,i)=>{
    console.log(val,i);
    return  2 * val;
});
console.log("arr:",arr);
console.log("res:",res);
//输出
//1 0
//2 1
//3 2
//arr: (3) [1, 2, 3]
//res: undefined

map:返回一个新的数组,新数组的每一项都是回调函数处理的结果

var  arr = [1,2,3];
var  res = arr.map((val,i)=>{           
    console.log(val,i);
    return  2 * val;
});
console.log("arr:",arr);
console.log("res:",res);
//输出
//1 0
//2 1
//3 2
//arr: (3) [1, 2, 3]
//res: (3) [2, 4, 6]

every(callback):检测数组所有元素是否都符合callback中的指定条件

如果数组中检测到有一个元素不满足,则表达式返回 false ,且不再检测剩余元素。
如果所有元素都满足条件,则返回 true。

var  arr = [1,2,3];
var  res = arr.map((val,i)=>{           
    console.log(val,i);
    return  2 * val;
});
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 2, 8, 4]
//res: false

some(callback):检测数组中是否有符合callback中条件的元素,如果有就返回true,否则返回false

如果有一个元素满足条件,则表达式返回true , 且不再检测剩余元素。
如果没有满足条件的元素,则返回false。

var arr = [1,2,8,4];        
var res = arr.some((val)=>(val > 3));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 2, 8, 4]
//res: true

concat(a,b,…):这个方法就是将数组进行拼接,不会进行去重处理,可以同时连接很多个数组,返回一个连接后的新数组

var arr = [1,2,3];
var res = arr.concat([1,2],[3,4]);  
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (3) [1, 2, 3]
//res: (7) [1, 2, 3, 1, 2, 3, 4]

filter(callback):返回数值中符合callback中条件的所有元素组成的新数组

var arr = [1,2,8,4];        
var res = arr.filter((val)=>(val > 3));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 2, 8, 4]
//res: (2) [8, 4]

slice(from,end):这个方法就是从数组中截取从from开始,end结束的数组

var  arr = [1,2,3,4,5];
var  res = arr.slice(1,4);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (5) [1, 2, 3, 4, 5]
//res: (3) [2, 3, 4]

indexOf(val):这个方法就是寻找数组中值为val项的索引

var  arr = [1,2,3];
var  res = arr.indexOf(2);
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (3) [1, 2, 3]
//res: 1

find( callback(val) ):返回callback中符合测试条件的第一个数组元素的值,如果没有符合条件的元素返回 undefined

var arr = [1,22,23,24];
var res = arr.find((val)=> val > 22 );
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 22, 23, 24]
//res: 23

findIndex(callback):返回callback中符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1

var arr = [1,2,8,4];        
var res = arr.findIndex((val)=>(val > 3));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 2, 8, 4]
//res: 2

join(item):将数组以item为分隔符进行连接,并返回字符串

var arr = [1,2,'aa',4];     
var res = arr.join('|');
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (4) [1, 2, "aa", 4]
//res: 1|2|aa|4

reduce:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

var arr = [1,2,3,4,5];      
var res = arr.reduce((prev,val)=>(prev + val));
console.log("arr:",arr);
console.log("res:",res);
//输出
//arr: (5) [1, 2, 3, 4, 5]
//res: 15

这个reduce方法还是挺有意思的,后面会专门写一篇讲解reduce的文章,此处立flag!

上面是我对数组array相关方法的总结,欢迎大家在评论区进行补充!

蓝牙模块HM-10手册 蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。 立即下载

相关推荐

​​WPF入门与XAML基础:从零开始构建你的第一个WPF应用​

本文是WPF入门系列首篇,详细介绍WPF的核心优势与开发环境搭建。通过创建第一个WPF项目,解析MainWindow.xaml和App.xaml等关键文件,深入讲解XAML基础语法,包括属性赋值、命名空间和事件绑定。最后通过按钮点击交互示例演示WPF应用程序运行流程,帮助开发者快速上手WPF开发,为后续学习布局系统和数据绑定等高级主题奠定基础。

Hare的博客 3280

JavaScript 数组

JavaScript 数组1. 数组的创建方式2. 数组元素的类型3. 获取数组元素3.1 数组的索引3.2 遍历数组4. 数组中新增元素 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是动态大小的,会随着数据添加而自动增长。 //普通变量一次只能存储一个值 var num = 10; //数组一次可以存储多个值 var arr = [1,2,3,4,5]; 1. 数组的创建方式 JS中创建数组有两种方式: 利用new创建数组 利用数组字面量创建数组 利用new

impact_factor的博客 303

Unity通用Buff系统,Buff编辑器(1,理论篇)(技能系统之Buff篇)

逻辑层根据游戏的规则和设计,控制Buff的生命周期、影响目标对象的属性或行为,以及处理Buff的交互和冲突。Buff堆叠和冲突:有些游戏中允许同类型的Buff叠加,以增加效果的强度,而有些游戏中可能不允许Buff叠加,只能由更强力的Buff来覆盖较弱的Buff。灵活个性化:每个游戏对象拥有自己的BuffManager,可以实现个体对象的独特Buff效果,增加游戏的多样性和个性化。自由控制:每个对象独立管理自己的Buff,可以自由地激活、更新和移除Buff效果,提供更精细的控制和逻辑实现。

u010082265的博客 4693

js中数组的例子

例1:for循环遍历数组 var arr=[10,20,30,40]; for(var i=0;i<arr.length;i++){ console.log(arr[i]); } 例2:求数组中所有元素的和 var arr=[10,20,30,40]; var sum=0; for(var i=0;i<arr.length;i++){ sum+=arr[i]; } console.log(sum); 例3:求数组中所有元素的最大值 var arr=[3,55,23,100,3

代码在路上的博客 641

BIM模型导入SuperMap

目录 一、超图 BIM插件安装 1.1 插件下载 1.2 安装 二、BIM模型导出 2.1 Revit插件导出 2.2 SuperMap导入工具 三、SuperMap BIM数据处理与服务发布 四、SuperMap三维数据处理中关于模型高程修改方法 一、超图 BIM插件安装 1.1 插件下载 下载链接:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=134 1..

爱晒太阳的风 3597

VS2019 C# MySQL 学生信息增删改查(一、增删)

VS2019 C# MySQL 学生信息增删改查 由于刚刚学习VS2019,入手的第一个例子是编写一个简单的增删改查。这里,我以学生信息为例,进行详细的过程描述以及代码实现。 一、 新建一个Windows窗体应用程序 1、创建新项目界面,如下图所示。 2、更改项目名称,当然不修改也可以。我这里的是“StudentInfoSystem”;项目存放位置路径根据自己需要进行更改;“将解决方案和项目放在同一目录中”前面的勾选框,选不选都可以;点击“创建”,如下图所示。 二、前期准备工作 1、将Form1属性中

青哥 1万+

JavaScript 处理数组函数的总结

JavaScript的array可以包含任意数据类型,并通过索引来访问每个元素。 1、检测数组:instanceof、slice()、Array.isArray() 检测一个对象是不是数组的三种方法:(1)方法一:instanceOf检测方法 var arr = ['a','b','c'];if (arr instanceof Array){// do something...} 或者: var arr = ['a','b','c'];if (Array.proto

油墨香^-^的博客 388

PPT里文字太多如何排版-一口气教你7种布局瞬间让PPT高大上起来

PPT里全是文字且很拥挤怎么办?本篇教你使用7种不同的排版让你的PPT瞬间变得高大上起来。

打造全国最全的AI Agent开发知识领域的博客 5022

javascript中数组的常用方法

数组的基本方法如下 1、concat() 2、join() 3、pop() 4、push() 5、reverse() 6、shift() 7、sort() 8、splice() 9、toString() 10、unshift() 11、slice()。 1. concat()     该方法用于连接2个或者多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副...

weixin_34194359的博客 137

A Macro- and Micro-Hierarchical Transfer Learning Frameworkfor Cross-Domain Fake News Detection

近年来,社交媒体上假新闻的快速和广泛传播对人们的日常生活构成了越来越大的威胁[6, 14, 19]。为了有效打击假新闻,自动检测假新闻变得至关重要[39]。新闻内容[11, 16, 20, 27]和用户互动(即用户互动)[1, 24, 34]。基于这些类型的数据,提出了单领域假新闻检测,它从新闻文章、用户互动或两者中提取有效特征,以识别单个新闻领域内新闻的真实性(即新闻是真是假)(例如,政治新闻或娱乐新闻)。

qq_52053775的博客 155

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JavaScript常用数组操作方法,包含ES6方法

一、concat() concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。 var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr1.concat(arr2); console.log(arr1); //[1, 2, 3] console....

weixin_33840661的博客 2022

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

详解JavaScript的数组,JS数组方法大全

什么是数组 数组是值得有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。 js的数组是无类型的,数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组。 数组元素的索引不一定要连续,元素之间可以有空隙,叫做稀疏数组 。 每个数组都具有一个length属性。 针对非稀疏数组,length属性就是数组元素的个数,针对稀疏数组,元素的length属性比所...

wfly blog 880

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

js,javascript数组方法详解(2024-04-29)

js数组Array 方法详解。

hap1994的博客 472

js 中添加php数组元素,图文详解JavaScript中数组添加元素的三种方法

数组是JavaScript中比较重要的一部分,那你知道如何给JS数组添加元素吗?这篇文章就和大家讲讲JS数组添加元素的方法,具有一定的参考价值,感兴趣的朋友可以看一下。方法一、unshift()方法unshift方法可以向数组的开头添加一个或多个元素,然后返回新数组的长度,且所有主流浏览器都支持unshift方法。语法:array.unshift(item1,item2, ..., itemX)举...

weixin_32340873的博客 258

js进栈出栈_JavaScript数组的栈方法与队列方法详解

数组(Array)和对象(Object)应该是JavaScript中使用最多也是最频繁的两种类型了,Array提供了很多常用的方法:栈方法、队列方法、重排序方法、操作方法、位置方法、迭代方法等等。1、Array的栈方法栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。栈中项的插入(push)和移除,只发生在一个位置——栈的顶部。ECMAScr...

weixin_39832643的博客 1552

JavaScript之数组方法详解

数组是JavaScript中最常用的数据结构之一,掌握数组方法是高效处理数据的基础,本文我将系统梳理JavaScript数组的常用方法,从基础的添加删除到复杂的遍历转换,并结合实例解析每种方法的用法、特性及适用场景,帮你彻底搞懂数组操作的核心技巧。

aa_hdkf_vg的博客 1237

js array 删除指定元素_JavaScript中原生Array数组方法详解

来源 |http://www.fly63.com/article/detial/9692JS中,数组可以通过阵列构造函数或[]字面量的方式创建。数组是一个特殊的对象,继承自对象原型,但用typeof运算判断时,并没有一个特定的值,仍然返回'对象'。但使用[] instanceof Array返回true。这说明,js中存在一个类数组的对象,就像字符串对象或arguments对象。arg...

weixin_39994949的博客 351

JavaScript 数组的 find() 方法详解

JavaScript数组的find()方法详解 find()方法用于查找数组中第一个满足条件的元素。其特点包括:1)只返回第一个匹配项;2)不改变原数组;3)找到即停止搜索。语法为arr.find(callback),callback接收当前元素、索引和数组本身三个参数。当查不到时返回undefined。相比filter()返回所有匹配项,find()更高效。常见应用包括:表单验证、DOM元素查找、对象数组搜索等。注意:ES6新增方法,旧浏览器需使用polyfill。实际开发中可用于用户搜索、数据验证等场景

qq_44136882的博客 1557

【JavaScript】数组 `reduce` 方法详解

reduce是 JavaScript 数组的一个原生方法,它可以通过迭代数组中的每一个元素,将其与累加器进行操作,并最终返回一个汇总的结果。简而言之,reduce允许你将数组“压缩”为一个单一的输出值,这个值可以是数字、字符串、对象等。JavaScript 的reduce方法是一个非常强大的工具,能够帮助我们处理各种复杂的数据汇总任务。无论是简单的数组求和,还是更复杂的对象汇总、去重等操作,reduce都能够胜任。通过理解reduce的工作原理和灵活的应用场景,开发者可以在实际项目中更高效地处理数据。

lph159的博客 3315

JS数组reduce()方法详解及高级技巧

reduce()方法可以搞定的东西,for循环,或者forEach方法有时候也可以搞定,那为啥要用reduce()?这个问题,之前我也想过,要说原因还真找不到,唯一能找到的是:通往成功的道路有很多,但是总有一条路是最捷径的,亦或许reduce()逼格更高... 1、语法 arr.reduce(callback,[initialValue]) reduce 为数组中的每一个元素依次执行...

vue 5911

JavaScript 数组常用方法详解

🤍 前端开发工程师、技术日更博主、已过CET6🍨、23年度博客之星前端领域TOP1🕠高级专题作者、打造专栏🍚签约作者、上架课程💬 前些天发现了一个巨牛的,通俗易懂,风趣幽默,忍不住分享一下给大家。。

你若盛开,清风自来 1128

JavaScript中的数组方法总结+详解

在JS中,数组方法是非常重要且常用的的方法.在此整理总结一番. JavaScript 数组的力量隐藏在数组方法中。 1. js常用数组方法 方法名 功能 返回值 是否改变原数组 版本 push() 在数组最后一位添加一或多个元素 返回长度 Y ES5- unshift() 在数组前添加一或多个元素 返回长度 Y ES5- 2.方法详解 1.push .........

qq_43223007的博客 8万+

js多层对象数组 合并_详解JavaScript中的数组合并方法和对象合并方法

1 数组合并1.1 concat 方法var a=[1,2,3],b=[4,5,6];var c=a.concat(b);console.log(c);// 1,2,3,4,5,6console.log(a);// 1,2,3 不改变本身1.2 循环遍历var arr1=['a','b'];var arr2=['c','d','e'];for(var i=0;iarr1.push(arr2[i])...

weixin_32002013的博客 522

js数组方法大全 详解

JavaScript中创建数组有两种方式 使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); // 创建一个包含20项的数组 var arr3 = new Array(“lily”,“lucy”,“Tom”); // 创建一个包含3个字符串的数组 使用数组字面量表示法: var arr4 = []; //创建一个空数组 var arr5 = [20]; // 创建一个包含1项的数组 var arr6 = [“

weixin_43720534的博客 234

Javascript 数组及其方法详解

Javascript 数组

jnfy的博客 833
上一篇: 一句话获取url中指定的参数
下一篇: reduce方法详解
izwell
博客等级 码龄14年 16粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值