JS对数组的操作详解

news2024/9/21 18:39:08

目录

shift 方法

unshift 方法

reverse方法

sort方法

reduce方法

concat方法

join方法

push方法

pop方法

slice方法

splice方法

forEach方法

map方法

filter方法

every方法

some方法

indexOf方法

find方法

includes方法

在这里总结一下JS的数组方法:

shift 方法

shift:删除数组的第一个元素

返回值:删除数组的第一个元素的值

是否改变原数组:是


unshift 方法

unshift:向数组的开头添加元素

返回值:添加完后的数组的长度

是否改变原数组:是


reverse方法

reverse:颠倒数组

返回值:颠倒后的数组

是否改变原数组:是


sort方法

sort:数组升序排序

返回值:升序之后的数组

是否改变原数组:是


reduce方法

reduce:数组累和 

  1. 第一个参数为一个回调函数,这个函调函数用来计算累积的和,这个回调函数一共有四个参数:第一个值为计算累计和,第二个值为遍历的数组的值,第三个参数为计算的时候这个遍历数组的索引,默认从1开始,第四个参数为数组本身
  2. 第二个参数为 初始值,为0的话就是从0开始累加,为10的话就是从10开始累加,这个参数可以是任意一个数

返回值:数组的和

是否改变数组:否


concat方法

concat:连接数组,它可以连对象

返回值:连接数组后的值,这个值是一个数组

是否改变原数组:否

注意:concat可以连接对象,但不可以以对象去使用concat方法,会直接报错,但如果使用数组去使用concat连接对象,则可以生效

它还可以连接值


join方法

join:拼接数组成一个字符串

返回值:拼接后的数组

是否改变原数组:否


push方法

push:向数组的尾部添加元素

返回值:添加后的数组长度

是否改变原数组:是

注意:push可以添加数组和值

也可以添加对象

注意:可以使用展开运算符... 将数组的值拿出来添加到原数组中


pop方法

pop:删除数组的最后一个元素

返回值:删除的数组的最后一个元素的值

是否改变原数组:是


slice方法

slice:截取元素

返回值:截取的之后的元素

是否改变原数组:否


注意

slice还可以截取字符串


splice方法

参数个数为一个的情况
 

参数分为正整数和负整数

  1. 正整数

    splice:删除索引为参数以及参数之后的所有元素

    返回值:删除的元素组成的一个新数组

    是否改变原数组:会

  2. 负整数

     slice:删除索引为参数以及参数之后的所有元素,索引从前往后计算-1的话删除的就是5,-2的话删除的就是4和5,以此类推

    返回值:删除的元素组成的一个新数组

    是否改变原数组:会

参数个数为二个的情况
 

splice: 删除数组元素,参数只能为正整数,否则使用复数的话只会返回空数组,第一个参数为要删除的索引起始位置,第二个参数表示要删除的个数

返回值:删除的元素组成的一个新数组

是否改变原数组:会

参数个数为三个或以上的情况
 

splice: 可以在数组中删除指定元素或者插入元素、替换元素,第一个参数为整数,表示索引的起始位置,第二个参数整数,表示删除或者替换的个数(如果是0则是插入),删除相应元素之后要添加的元素

返回值:替换的或者删除的元素组成的数组,如果是插入的话返回的就是空数组

是否改变原数组:会

插入元素 (可以插入多个元素)



替换元素 


forEach方法

forEach:遍历数组执行函数里的操作

返回值:返回值为undefined

是否改变原数组:否

forEach它有三个参数 

  1. 遍历的值
  2. 此次的索引
  3. 数组本身


map方法

 map:遍历数组,返回一个新数组,返回的这个数组是执行函数里的操作后的新数组,它不会去修改原数组

返回值:返回值为操作后的新数组

是否改变原数组:否

 

它有三个参数 

  1. 遍历的值
  2. 此次的索引
  3. 数组本身

filter方法

filter:过滤数组,返回一个过滤后的新数组

返回值:返回值为过滤后的新数组

是否改变原数组:否

它有三个参数 

  1. 遍历的值
  2. 此次的索引
  3. 数组本身

every方法

every:遍历数组运行给定的函数,检测是否满足函数里的指定条件,如果都符合则返回true,只要有一项不符合就返回false

返回值:true 或者 false

是否改变原数组:否


some方法

some:遍历数组运行给定的函数,检测是否满足函数里的指定条件,只要有一个符合则返回true,如果所有项都不符合则返回false

返回值:true 或者 false

是否改变原数组:否


indexOf方法

indexOf:查找元素所在数组的索引

返回值:  如果数组中存在该值,则返回该值在数组中的索引,如果数组中不存在该值则返回的就是-1

是否改变原数组:否


find方法

find: 遍历数组,返回满足函数判断的第一个值,如果没有则返回undefined

返回值:  找到第一个的值或者undefined

是否改变原数组:否


includes方法

includes: 遍历数组,如果数组里存在该参数,则返回true,如果不存在,则返回false

返回值:  true 或者 false

是否改变原数组:否


欢迎提出错误 

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

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

相关文章

JDBC基本使用

文章目录一、JDBC技术1.1、JDBC概念1.2、JDBC作用1.3、JDBC工作原理1.4、JDBC工作流程二、使用JDBC访问数据库2.1、创建Maven项目2.2、添加数据库依赖2.2.1、mysql依赖2.2.2、oracle依赖2.3、编写代码2.3.1、加载驱动2.3.2、通过DriverManager获取connection连接2.3.3、执行SQL…

java中线程安全问题及解决方法、线程状态、线程间通信(线程等待唤醒机制)

线程安全 概述: 多线程访问了共享数据,此时会产生冲突(如:在多个线程中执行售卖货物的业务,要求是某个货被某个线程售卖后,其他线程应该不再可以售卖此个货,但是默认被某个线程售卖后&#xf…

JVM 教程

jvm教程jvm概述前言JVM 定义JVM 的作用查看自己的 JVMJVM,JRE 和 JDK 联系小结JVM 整体架构目标JVM 整体架构类加载子系统运行时数据区执行引擎小结JVM 常用参数配置IntelliJ IDEA 添加运行参数JVM 参数:跟踪垃圾回收JVM 参数:跟踪类的加载与…

手把手代码实现五级流水线CPU——第二篇:分支预测流水线

系列文章目录 第三篇:流水线控制逻辑 第一篇:初级顺序流水线 文章目录系列文章目录一、流水线硬件结构二、流水线各阶段的实现实现原理一、流水线硬件结构 取指阶段 PC增加器:用来计算下一条指令的地址valP 译码阶段 一次译码操作读出俩个寄…

学习vue的准备工作

一、前提: 1、vscode安装: https://blog.csdn.net/m0_55400356/article/details/1260267332、node.js安装: 已安装 16.0 或更高版本的 Node.js; https://www.runoob.com/nodejs/nodejs-install-setup.html3、安装vue&#xff…

hadoop之ranger权限配置(二)

文章目录一、编译ranger(node12)二、安装前环境准备(node12)三、安装RangerAdmin(node12)(root)五、Ranger Hive-plugin(node10)六、Ranger Hdfs-plugin(node10、11&…

ansible远程控制及其相关操作

1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应(普通命令,特权命令)任务(以下所有结果均见截图) (1)控住主机--server通过主机名匹配对应连接的受控主机 [rootserver ~]#vim /etc/hosts …

一本通 1267:【例9.11】01背包问题(详细代码+严谨思路+清晰图片)

经典01背包问题 这里给你3种方法 目录 DFS 思路: 代码: DFS记忆化 思路: 代码: 动态规划 思路: 代码: DFS 时间复杂度 :O(2^n) 思路: DFS求出所有选法,再用…

Git Stash、Git Merge、Git Rebase、Git Revert

GIT 日常使用总结git stashgit mergegit rebase将多个commit合并成一个commitgit revert撤销修改撤销commit 但是不撤销add 的内容撤销addGIT Rebase 补充说明:git stash git stash:将修改后的代码存储到本地的一个栈结构,将工作区和暂存区恢…

37-Vue之ECharts高级-交互API

交互API前言全局ECharts对象echartsInstance对象前言 本篇来学习下ECharts中交互API的使用 全局ECharts对象 全局 echarts 对象是引入 echarts.js 文件之后就可以直接使用的 init :初始化ECharts实例对象,使用主题 registerTheme:注册主题…

Avatar和虚拟场景如何影响用户VR社交行为

对于VR社交来讲,虚拟场景(社交环境)、Avatar(虚拟化身)是两个重要的元素,一个代表了人们在VR中互动的空间,而另一个则代表他们在这个空间中所扮演的角色。现阶段,Avatar有多种形态&a…

已解决import tensorflow.contrib.layers as layers导包错误

已解决W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not ha…

opencv-python常用函数解析及参数介绍(八)——轮廓与轮廓特征

轮廓与轮廓特征前言1.获取轮廓通过膨胀与腐蚀获得轮廓通过梯度获取轮廓通过边缘检测获取轮廓2.寻找轮廓参数及作用对比3.轮廓特征前言 在前面的文章中我们已经学会了使用膨胀与腐蚀、使用梯度、使用边缘检测的方式获得图像的轮廓,那么在获得轮廓后我们可以对图像进…

​赛分科技冲刺科创板上市:拟募资8亿元,复星、高瓴为股东​

近日,苏州赛分科技股份有限公司(下称“赛分科技”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺上市,赛分科技计划募资8亿元,将用于20万升/年生物医药分离纯化用辅料、研发中心建设项目&#xf…

《收获,不止Oracle》读书笔记一

当今时代 技术人员,真正的差距其实在意识 1.忽略了知识的重点 20%的知识,解决80%的问题 2.从未考虑知识落地 知识要落地, 要思考应用的场合。 学习任何技术都是一样的,没有思考过你所学的某项技术有什么用,没有想…

P1827 [USACO3.4] 美国血统 American Heritage

题目描述 农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。 你的任务是在被给予奶牛家谱的“树中序遍历…

计算机网络 | 湖科大教书匠

一、因特网概述 1、网络、互联网和因特网 网络是由若干结点和连接这些结点的链路组成 多个网络还可以通过路由器互联起来,这样就构成了一个覆盖范围更大的网络,互联网 因此,互联网是网络的网络(Network of Networks&#xff0…

hadoop+ranger+kerberos页面权限配置(四)

一、原理介绍 hdfs 指令测试:hdfs dfs -mkdir /ranger 原理:根据路径进行文件夹操作赋权。一旦指定文件夹权限,则该用户可以操作该文件夹及该文件夹底下的子文件夹。 yarn 指令测试:hadoop jar /home/hadoop/module/hadoop-3.2.2…

跨平台数据库管理器DbGate

本文软件由网友 zxc 推荐;隔了很久才开始写,又隔了很久才想起来发 😂 什么是 DbGate ? DbGate 是跨平台的数据库管理器。支持 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 等的数据库管理器。能够在 Windows、Linux、Mac 下运…

Z函数(扩展KMP)

1,定义 z函数存储字符串s(长度n&#xff0c;下标从0开始&#xff09;与其所有后缀s[i,n-1](0<i<n-1)的最大公共前缀LCP的值&#xff08;一般默认z[0]0,有时是n) 2,思路 叫他扩展KMP是有原因的&#xff0c;因为思想相近&#xff0c;我们求取z[i]&#xff0c;尝试利用前…