搜索
首页web前端js教程Js数组的操作push,pop,shift,unshift等方法详细介绍_javascript技巧

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

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

复制代码 代码如下:

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

当然上面的方法可以简化为funaction mySort(left,right){ return right-left;}
复制代码 代码如下:

//按照偶数在前奇数在后排序
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)–[]
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP8.0中数组的合并操作:array_mergePHP8.0中数组的合并操作:array_mergeMay 14, 2023 am 08:52 AM

在PHP8.0版本中,数组合并操作是经过了改进的。这个改进主要针对的是数组数据类型的合并操作。在之前的版本中,PHP提供的数组合并操作是使用“+”符号实现的。但是,这种方法存在一些问题。如果两个数组中包含相同的键,那么第二个数组的键值将会覆盖第一个数组中的键值,如果需要把两个数组合并在一起,那么就需要技巧地使用array_merge()函数了。现在,在PHP

如何在PHP中将字符串放入数组,并按换行符拆分如何在PHP中将字符串放入数组,并按换行符拆分Aug 28, 2023 pm 10:57 PM

什么是PHP?PHP代表超文本预处理器,是一种用于Web开发的流行服务器端脚本语言。它旨在创建动态和交互式网页。PHP嵌入在HTML代码中并在服务器上执行,生成发送到客户端浏览器的HTML输出。凭借其简单易学的语法,PHP允许开发人员构建动态网站、处理表单数据、与数据库交互以及执行各种服务器端任务。它拥有庞大的库和框架生态系统,可增强其功能并使开发人员能够创建强大且可扩展的Web应用程序。PHP受到托管提供商的广泛支持,使其成为Web开发项目的首选。如何在PHP中将字符串放入数组并按换行符分割方

使用PHP进行数组操作的最佳实践使用PHP进行数组操作的最佳实践Jun 06, 2023 am 10:30 AM

PHP是一种广泛使用的服务器端脚本语言,可以通过许多不同的方式进行数组操作。本文将介绍我们编写PHP代码时的最佳实践,帮助您创建更高效、更美观、更可读的代码。1.使用数组函数而不是手动循环最好使用PHP数组函数,而不是手动循环数组来移动、操作或修改数据。PHP数组函数执行较快,具有更好的可读性和可维护性。下面是一些常用的PHP数组函数:array_push(

PHP8.0中数组中的危险操作:array_splice()PHP8.0中数组中的危险操作:array_splice()May 14, 2023 am 08:24 AM

PHP8.0中数组中的危险操作:array_splice()在PHP编程中,数组是一个非常常用的数据结构,它允许我们在一个变量中存储多个值。而array_splice()函数则是一个处理数组的方法,它可以删除或替换数组中的元素。但是,在PHP8.0中,array_splice()函数却有一些危险操作,如果使用不当,将会导致一些严重的问题。本文将为大家详细介绍

使用PHP自定义函数扩展数组交集和并集的功能使用PHP自定义函数扩展数组交集和并集的功能May 01, 2024 am 10:45 AM

使用PHP自定义函数可扩展数组交集和并集功能,自定义交集函数允许按键或值查找交集,而自定义并集函数按键或值查找并集。这使您能够基于特定需求灵活操作数组。

PHP数组操作大全:array_diff()PHP数组操作大全:array_diff()Jun 20, 2023 pm 03:57 PM

在PHP中,数组是一种非常常见和有用的数据结构。PHP提供了许多不同的函数和方法来操作和处理这些数组。其中一个非常有用的函数是array_diff()。本文将详细讨论此函数。array_diff()函数的基本用法非常简单。该函数接受两个或多个数组作为参数,并返回一个新数组,其中包含第一个数组中存在,但其他数组中不存在的元素。下面是一个示例:$array1=

PHP中的IMAP和POP协议的应用PHP中的IMAP和POP协议的应用Jun 23, 2023 am 11:51 AM

随着互联网和电子邮件的普及,人们越来越依赖于电子邮件通信。PHP作为一种流行的脚本编程语言,也为电子邮件操作提供了强大的支持。其中,IMAP和POP协议是PHP中邮件操作的两种常用协议。下面就来详细介绍一下它们在PHP中的应用。一、IMAP协议IMAP(InternetMessageAccessProtocol)协议是在邮件客户端和邮件服务器之间建立的

PHP 数组键值互换:性能对比及最优方案详解PHP 数组键值互换:性能对比及最优方案详解May 04, 2024 pm 01:51 PM

PHP数组键值互换的最佳方案:使用内置的array_flip()函数,时间复杂度为O(n)。对于较大的数组,array_flip()的性能优势更明显。实战案例:可使用array_flip()将购物车中商品名称数组转换为商品数量数组。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用