Js数组的操作push,pop,shift,unshift等方法

JavaScript中使用push()方法向数组添加元素 它可以接受单个或多个元素,并将它们添加到数组的末尾。通过使用push()方法,我们可以动态地向数组添加新的元素,从而实现对数组的动态管理和扩展。push()方法是数组对象的一个内置方法,用于向数组的末尾添加一个或多个元素,并返回新数组的长度。JavaScript是一种广泛使用的脚本语言,它具有强大的数组功能,可以通过push()方法向数组添加元素。需要注意的是,push()方法会修改原始数组,将新的元素添加到其末尾。除了单个元素外,push()方法还可以接受多个元素作为参数,将它们一次性添加到数组中。 阅读详情

原文地址:http://www.jb51.net/article/32898.htm

js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧。不过不会针对每个方法进行讲解,我只是选择其中的一些来讲。 


首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组。push(args)可以每次压入多个元素,并返回更新后的数组长度。pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined。 如果参数是数组则是将整个数组当做一个元素压入到原来的数组当中。并不会产生类似concat合并数组时产生的“拆分现象”,下面看例子 

例1: 
var oldArr=[1,2,3]; 
alert(oldArr.push(4,[5,6]))–>5(这里只会将[5,6]当做一个元素来计算,返回更新后的数组长度5) 
此时oldArr–>[1,2,3,4,[5,6]] 
alert(oldArr.pop())–>[5,6](这里弹出最后一个元素[5,6],而不是6) 
此时oldArr–>[1,2,3,4] 
oldArr.pop()–>4 
oldArr.pop()–>3 
oldArr.pop()–>2 
oldArr.pop()–>1 
oldArr.pop()–>undefined(空数组弹出) 
现在讲完push和pop再来看一下unshift和shift 
这两个方法都是通过对数组的头部进行的操作,其他基本跟push和pop类似,但是在IE中unshift方法返回的是undefined 

例2: 
var oldArr2=[1,2]; 
oldArr2.unshift(3)–>undefined 
此时oldArr2为–>[3,1,2] 
oldArr2.shift()–>3 
此时oldArr2为[1,2] 
接下来看一下功能强大一点的splice,利用其可以进行数组随意位置的元素添加,删除 ,其操作也是在原有

数组上修改 
splice(start,deleteCnt,args) 中的start表示开始操作下标,deleteCnt表示从开始下标开始(包括该元素)要删除的元素个数,删除操作返回删除的元素。args表示用来替换删除掉的那些元素(可以有多个参数),start和deleteCnt必须为数字,如果不是数字尝试转换,转换失败当做0来处理。splice必须至少有一个start元素,否则不做任何操作。deleteCnt不存在表示删除start及后面的全部元素(IE下,取0不做删除)。start可以为负数,表示从数组右边结尾处开始计算。deleteCnt如果为负数不做删除,因为不可能删除负个元素。 
好了解释就到这边现在看一下例子,通过例子或许可以更好的理解 

例3: 
var oldArr3=[1,2]; 
oldArr3.splice()–>”"(返回空的字符串,不做任何操作,操作后oldArr3–>[1,2]) 
oldArr3.splice(“”)–>[1,2](“”尝试转换为数字失败返回0,所以删除1,2,操作后oldArr3–>[],但是IE下有点恶心,不做任何操作) 
oldArr3.splice(“1a”)–>同上 
odlArr3.splice(0,2)–>[1,2](“从下标0的元素开始,删除两个元素1,2因此删除后oldArr3–>[]) 
oldArr3.splice(0,-1)–>”"(从0下标开始删除-1个元素,故等于没做任何操作,操作后oldArr3–>[1,2]) 
oldArr3.splice(1,1)–>2(从下标1 开始删除1个元素,即删除2,所以删除后oldArr3–>[1]) 
oldArr3.splice(1,4)–>2(从下标1 开始删除4个元素,1开始只有1个元素,故删除2,所以删除后oldArr3–>[1]) 
oldArr3.splice(-1,0,3)–>”"(从下标-1即2元素开始删除0个元素,然后添加元素3,所以操作后oldArr3–>[1,3,2]) 
oldArr3.splice(-1,1,3)–>2(从小标-1即2元素开始删除1个元素,然后添加元素3,操作后为oldArr3–>[1,3]) 
OK接下来开始讲concat,这个方法用来连接两个或多个数组,该数组不会改变原来的数组只会返回新的一个数组。连接的时候参数如果为数组,则连接的是数组中的元素。因为比较简单直接开始例子 

例4: 
var oldArr4=[1,2]; 
oldArr4.concat(3,4)–>[1,2,3,4] 
oldArr4.concat(3,4,[5,6])–>[1,2,3,4,5,6](这边添加的是[5,6]中的元素5和元素6) 
oldArr4.concat(3,[4,[5,6]])–>[1,2,3,4,[5,6]](这边最里层的元素[5,6]整个用来添加,而不是拆开) 
下面来讲数组中的排序方法sort 
sort(function)是针对原数组进行的排序,不会生成新的数组。默认sort()不带参数时按照数组中的元素转换成字符串进行比较,比较的时候按照字符在字符编码中的顺序进行排序,每个字符都有一个唯一的编码与其对应。 

且看下面例子 
var oldArr5=[3,1,5,7,17] 看这个一般观念上以为对oldArr5排序时oldArr5.sort()会按照数字从小到大排序即返回[1,3,5,7,17],但是看一下结果其实不然返回的是[1,17,3,5,7] 因为比较的时候都被转成字符串。然后对字符串进行一个个的比较如果第一个字符相同则比较第二个,否则直接返回比较结果,因为”17″<”3″所以可想而知排序的结果就不是一般印象中的那个结果了。

sort(function)方法除了默认的无参外还可以传入自定义的排序方法,这样排序的结果完全可以由自己来控制了,想怎么排就怎么排,是不是很爽啊,呵呵。 一般自定义的function比较函数,包含两个参数分别代表用来比较的左元素和右元素。然后通过一定方式返回一个结果,如果返回值大于0表示交换左右元素,如果返回值小于0或等于0则表示不不会交换左右元素。现在来看一下例子 

例5: 
按照数字从大到小排列原有数组 

var oldArr5=[3,1,5,7,17]; //初始数组 
function mySort(left,right){ 
if(left<right){ 
return 1;}//如果左边元素小于右边元素则交换两数 
else{ 
return -1;}//如果左边元素大于等于右边元素不做交换 
} 

当然上面的方法可以简化为funaction mySort(left,right){ return right-left;} 

oldArr.sort(mySort); ///


//按照偶数在前奇数在后排序 
var oldArr6=[3,6,7,18];//初始数组 
function mySort2(left,right){ 
if(left%2==0)return -1;//如果左边元素为偶数则不交换 
if(right%2==0)return 1; //如果右边元素为偶数则交换 
return 0; //不交换 
} 

最后的slice不多讲,只是用来截取原数组中的部分元素,返回一个新的数组,原数组不会改变,其操作方式跟string的slice类似 

var oldArr7=[1,2,3,4]; 
oldArr7.slice(0)–>[1,2,3,4] 
oldArr7.slice(0,2)–>[1,2] 
oldArr7.slice(0,0)–>[] 
oldArr7.slice(0,-1)–>[1,2,3] 
oldArr7.slice(-3,-1)–>[2,3] 
oldArr4.slice(-1,-3)–[] 
【赛题解析&命令脚本配置】2024年第十七届山东省技能大赛 | 网络系统管理”赛项-模块B:Linux服务部署 & ⑤客户端OutsideCli和InsideCli工作任务 【赛题解析&命令脚本配置】2024年第十七届山东省技能大赛 | 网络系统管理”赛项-模块B:Linux服务部署 & ⑤客户端OutsideCli和InsideCli工作任务 | 【赛题解析&命令脚本配置】2024年第十七届山东省技能大赛 | 网络系统管理”赛项-模块B:Linux服务部署 & ⑤客户端OutsideCli和InsideCli工作任务 阅读详情

相关推荐

以太网传输硬件设计大全

1.网线的介绍RJ45由插头和插做组成,也就是我们常说的网口和网线。RJ45 网线插头又称水晶头,共有八芯做成。RJ45网络传输线分为直通线、交叉线和全反线。直通线用于异种网络设备之间的互连,例如,计算机与交换机。交叉线用于同种网络设备之间的互连,例如,计算机与计算机。全反线用于超级终端与网络设备的控制物理接口之间的连接。下面将介绍一下各线的作用和区别。1.直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线是应用最广泛,现在最常用的线。

weixin_45365488的博客 6749

Js数组的操作push,pop,shift,unshift等方法详细介绍

js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧。不过不会针对每个方法进行讲解,我只是选择其中的一些来讲,感兴趣的朋友可以研究一下 js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧。不过不会针对每个方法进行讲解,我只是选择其中的一些来讲。  首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或

PR 7954

VPI与Matlab协同仿真:相干光通信接收端DSP算法全解析

本文详细解析了如何利用VPI与Matlab协同仿真,构建完整的相干光通信接收端DSP算法处理闭环。重点介绍了从VPI导出数据后,在Matlab中实现时钟恢复、偏振解复用和载波相位估计等核心算法的步骤与原理,并阐述了如何通过误码率计算完成仿真验证,为相干光通信系统算法研究与验证提供了高效实用的方法。

ll5678的博客 610

Js-基础语法学习-unshift()方法

Js的基础语法学习

m0_46906988的博客 3779

带挂牵引车倒车运动模型推导及仿真实现

半挂牵引车在倒车时,由于鞍座主销的连接限制,其运动方式与乘用车有显著差异。例如,乘用车在右侧倒车入库时,只需确定泊车起点并将方向盘向右打死。相反,牵引车在倒车时需要先向左转方向盘,当铰接角达到防折叠的临界值时,再将方向盘向右转回,以调整牵引车与挂车至直线状态,完成泊车入库。本研究旨在建立一个基于牵引车带挂车倒车运动学模型,该模型基于以下假设: 道路在车辆行驶过程中保持平坦,无凹凸不平; 车辆以低速行驶,且在运行过程中车身不发生侧倾或俯仰; 行驶过程中,轮胎无变形,无侧向滑动,且不产

jianmo的博客 2697

PADS Logic VX2.5元件绘制全流程:从零开始创建自定义元件库

本文详细介绍了在PADS Logic VX2.5中从零开始创建自定义元件库的全流程。内容包括理解PADS独特的四库分立结构、绘制原理图符号(CAE封装)、关联PCB封装、创建元件类型以及最终的调用验证。掌握元件绘制技能能从根本上提升设计效率、确保设计规范统一,并从源头杜绝原理图与PCB之间的关联错误,是硬件工程师必备的核心能力。

oo7890的博客 441

js 常用函数 push()、pop()、shift()、unshift()、slice()、splice() 等

js 常用函数 push()、pop()、shift()、unshift()、slice()、splice() 等

u014212540的博客 4万+

深入解析AutoConfigURL劫持:从注册表权限到一键修复

本文深入解析了AutoConfigURL劫持的原理,揭示其通过篡改注册表权限锁定浏览器设置的机制。文章提供了从手动修复注册表权限到使用一键修复工具的详细解决方案,并指导用户进行DNS检查与病毒查杀,以彻底根除此类顽固劫持问题。

weixin_29229989的博客 767

javascript中对象使用push

var obj = {   '1':'a',   '2':'b',       'length':'2',   push:Array.prototype.push};obj.push('c');浏览器执行以上脚本后,obj 的 length 属性会变为 3;obj[2] 的值是 c;obj[3] 的值是 undefined;push 方法把值添加到数组中。push 方法有意具有通用性。该方法和 c...

Cherries_h的博客 8769

Windows下Nginx发布DEM地形瓦片数据全流程(含Cesium调用避坑指南)

本文详细介绍了在Windows环境下使用Nginx发布DEM地形瓦片数据的完整流程,并提供了Cesium前端调用的详细配置与避坑指南。重点讲解了Nginx的核心配置、跨域问题解决以及CesiumTerrainProvider的关键参数设置,帮助开发者快速搭建本地地形服务,实现高效的三维地形可视化。

weixin_29212867的博客 435

【异常】XXL-JOB提示异常ERROR com.xxl.job.core.util.XxlJobRemotingUtil - connect timed out

打开XXL-JOB的ELK,发现一堆报错。

奶爸的编程之路,也就一周冷个三天 2047

java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍

js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧。不过不会针对每个方法进行讲解,我只是选择其中的一些来讲。首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组。push(args)可以每次压入多个元素,并返回更新后的数组长度。pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素...

weixin_31659557的博客 1489

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

js 删除元素_JS数组操作方法总结(二)——pop、shift、push、unshift

数组操作使我们日常使用频率很高的一类方法,今天就数组的操作方法做一个总结。2. pop() —— 删除数组中的最后一个元素,并返回这个元素语法:array.pop(); 无参数返回值:删除数组的最后一个元素,并返回这个元素。 var arr = [1, 2, 3, 4, 5, 6]; arr.pop(); // 6 arr; // [1, 2, 3, 4, 5];3. shift() —— 删除数...

weixin_39998541的博客 648

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

js数组操作大全(pop,push,unshift,splice,shift方法)

pop  最后删除 var a = [1,2,3,4,5]; a.pop();  //a:[1,2,3,4] push 最后添加 var a = [1,2,3,4,5];  a.push(6,7);    //1,2,3,4,5,6,7 shift      开头删除 var a = [1,2,3,4,5];  a.shift();   /

肖肖肖丽珠的博客 3454

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JS10-数组的操作方法(索引下标、unshift、push、shift、pop、splice、sort、reverse、concat、join、split)

unshift、push、shift、pop、splice、sort、reverse、concat、join、split 一.通过索引下标来操作数组 1,通过索引下标,调用数组中,指定单元的数据 var arr = ['北京','上海','广州','重庆','天津']; arr[0] ---> 调用索引下标是 0 ,实际是第一个单元的数据 北京 2,通过索引下标,来修改数组中,存储的单元的...

DcTbnk的博客 2379

js数组操作(pop,push,unshift,splice,shift方法)

原文:https://blog.youkuaiyun.com/x2145637/article/details/51487855    https://www.cnblogs.com/johnny-cli/p/7524897.html shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); ...

Lazyafei's Blog 1630

js数组操作方法,pop(),push(),shift(),unshift()的解释

之前写页面时,需要动态的添加节点,于是在这里需要用到两个js中数组的操作方法,pop()以及push(),去网上查看了关于这两个方法的解释,顺便把shift()和unshift()也看了一下。 pop():删除数组的最后一个元素,把数组的长度减1,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine值 push():向数组末尾添加一个或者多个元素,并返回新的长度(可以...

开发路上的AZhe 1713

js操作数组的多种方法 shift()、unshift()、push()、pop()、concat()、slice()、splice()、toString()、join()

1.shift() :把数组的第一个元素从其中删除,并返回第一个元素的值。该方法会改变原数组。 const array=['one','two','three','four']; const shiftResult=array.shift(); console.log(shiftResult); //one console.log(array); // ['two','three','fou...

今天也要加油呀! 786

js 数组操作的push pop shift unshift 等方法

js 数组操作的push() 、pop() 、unshift()、 shift()、concat()、join()、reverse()、sort() 方法

qq_38801090的博客 1356

参数数组长度_JS数组操作方法总结(二)——pop、shift、push、unshift

数组操作使我们日常使用频率很高的一类方法,今天就数组的操作方法做一个总结。2. pop() —— 删除数组中的最后一个元素,并返回这个元素语法:array.pop(); 无参数返回值:删除数组的最后一个元素,并返回这个元素。 var arr = [1, 2, 3, 4, 5, 6]; arr.pop(); // 6 arr; // [1, 2, 3, 4, 5];3. shift() —— 删除数...

weixin_39789042的博客 290
上一篇: js队列和堆栈
下一篇: Mongodb学习笔记速记(一)
阿榄
博客等级 码龄18年 31粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值