前端开发:JS中数组常用方法汇总

news2025/1/9 16:36:31

前言

在前端开发中关于数组的使用想必前端开发者并不陌生,尤其是在处理业务逻辑的时候,从后端获取的数据类型中数组类型基本占到70%的比例,所以与其说是处理数据,不如说是处理数组,虽然说的有点夸张,前端实际开发中关于数组相关的使用在前端开发中是非常高频的,而且在前端求职面试时候关于数组相关的函数方法也是必考知识点,非常重要。那么本篇博文就来分享一下关于JS中数组常用的方法都有哪些?汇总起来,方便后期查阅使用。

JS中数组常用方法

在JS中数组常用方法有很多,大概有16个方法左右,尤其是在前端求职面试的时候常考这些数组方法的使用,这里把数组常用的方法结合在前端面试时候的考察相结合来对比性的逐一介绍,它们分别如下所示。

1、Array.push()方法:给数组的尾部添加一个或多个元素,并返回新的数组长度(原始数组会发生改变)。

var array = [1,2,3,4,5,6];

array.push(7,8,9);

console.log(array); //输出结果为:[1,2,3,4,5,6,7,8,9]

2、Array.pop()方法:删除并返回数组的最后一个元素,若该数组为空,则返回undefined(原始数组会发生改变)。

var array = [1,2,3,4,5,6,7,8,9];

var delete = array.pop();

console.log(delete); //delete=9

console.log(array); //输出结果为:[1,2,3,4,5,6,7,8]

3、Array.unshift()方法:给数组的头部添加一个或多个元素,并返回新的数组长度(原始数组会发生改变)。

var array = [1,2,3,4,5,6,7,8,9];

var result = array.unshift(0);

console.log(result); //res=10;

console.log(array); //输出结果为:[0,1,2,3,4,5,6,7,8]

4、Array.shift()方法:删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined(原始数组会发生改变)。

var array = [1,2,3,4,5,6,7,8,9];

var result = array.shift();

console.log(result); //result=1

console.log(array); //输出结果为:[2,3,4,5,6,7,8]

5、Array.concat(array1,array2…)方法:合并两个或多个数组,生成一个新的数组(原始数组不变)。

var array1 = [1,2,3,4,5];

var array2 = [6,7,8,9];

var result = array1.concat(array2);

console.log(result); //输出结果为:[1,2,3,4,5,6,7,8,9]

6、Array.join()方法:把数组的每一项用指定字符连接组成一个字符串,默认连接字符为 “,” 逗号。

var array = [1,2,3,4,5,6,7,8,9];

var string1 = array.join();

var string2 = array.join("+");

console.log(string1); //输出结果为:1,2,3,4,5,6,7,8,9

console.log(string2); //输出结果为:1+2+3+4+5+6+7+8+9

7、Array.reverse()方法:把数组倒序处理(原始数组会发生改变)。

var array = [1,2,3,4,5,6,7,8,9];

array.reverse();

console.log(array); //输出结果为:9,8,7,6,5,4,3,2,1

8、Array.sort()方法:对数组元素进行排序,按照字符串UniCode码排序(原始数组会发生改变)。

var array = [1,2,3,4,5,6,7,8,9];

①从小到大

var small = function(x,y){

return x-y;

}

array.sort(small);

console.log(array); //输出结果为:1,2,3,4,5,6,7,8,9

②从大到小

var big = function(x,y) {

return y-x;

}

array.sort(big);

console.log(array); //输出结果为:9,8,7,6,5,4,3,2,1

③按数组对象中的某个键值进行排序处理

var array = [{id:1,name:"Sum",num:"10"},{id:1,name:"Tom",num:"11"},{id:1,name:"Json",num:"12"},{id:1,name:"Denny",num:"13"},{id:1,name:"Jenny",num:"14"}];

function compare(param) {

return function num(x,y) {

return x[param]-y[param];

}

}

array.sort(compare("num"));

9、Array.map(function)方法:原数组的每一项执行函数后,返回一个新的数组(原始数组不变)。

10、Array.slice() 方法:按照条件查找出数组中的部分内容

传递的参数

  • array.slice(a, b)表示:从索引a开始查找到b处(不包含b)
  • array.slice(a) 表示:第二个参数省略,则一直查找到末尾
  • array.slice(0)表示:原样输出内容,可以实现数组克隆
  • array.slice(-a,-b)表示: slice支持负参数,从最后一项开始算起,-1为最后一项,-2为倒数第二项

返回值:返回一个新数组,原始数组不变

示例

var array = [1,2,3,4,5,6,7,8,9];

var result = array.slice(-3,-1);

console.log(result); //输出结果为:[2,3,8]

11、Array.splice(index,x,array1,array2…) 方法:用于添加或删除数组中的元素。从index位置开始删除x个元素,并将array1、array2…的数据从index位置依次插入。当删除的x为0时,则不删除元素。原始数组不变。

示例

var array = ["1","2","5","6","7","8","9"];

array = array.splice(2,1,"3","4");

console.log(result); //输出结果为:1,2,3,4,5,6,7,8,9

12、Array.forEach(function)方法:用于调用数组的每个元素,并将元素传递给回调函数。原始数组不变。(注意:forEach方法和map方法的区别,若直接打印Array.forEach(),输出结果为undefined)。

13、Array.filter(function)方法:过滤数组中符合条件的元素并返回一个新的数组。

var array = [1,2,3,4,5,6,7,8,9];

var newArray = array.filter(x => x>4);

console.log(newArray); //输出结果为:[5,6,7,8,9]

14、Array.every(function)方法:对数组中的每一项进行判断操作,若都符合则返回true,否则返回false。

15、Array.some(function)方法:对数组中的每一项进行判断操作,若都不符合则返回false,否则返回true。

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

var array = [1,2,3,4,5];

var result = array.reduce((x,y) => x+y);

console.log(result); //输出结果为:15

17、indexOf()方法:检测当前值在数组中第一次出现的位置索引。

传递的参数:array.indexOf(item,start) 其中,item表示查找的元素; start表示字符串中开始检索的位置。

返回值:第一次查到的索引,未找到返回-1。原始数组不变。

18、includes()方法:判断一个数组是否包含某一个指定的值。

传递的参数:指定的内容

返回值:布尔值。原始数组不变。

拓展

在前端求职面试中,面试官通常会这样考察数组的方法使用:

  • 原始数组会发生改变的方法有哪些?回答:push pop shift unshift reverse sort splice等方法;
  • 不改变原始数组的方法有哪些?回答:concat map filter join every some indexOf slice forEach等方法。

最后

通过本文关于前端开发JS中数组常用方法汇总的介绍,如果认真阅读并且实践示例,应该会很好的掌握这些知识点,整合了数组常用方法的汇总,是一篇值得阅读的文章,这些数组常用的方法相关知识点在求职面试中也甚为重要,而且在实际开发中也是必用知识点,所以说这些知识点是必备的,重要性就不在赘述。欢迎关注,一起交流,共同进步。

 

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

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

相关文章

vue文件导出/下载

const blob new Blob([res.data]);const elink document.createElement(a);elink.download 导出数据.xlsx;elink.style.display none;elink.href URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();URL.revokeObjectURL(elink.href);document.bo…

使用Coding管理项目代码记录

直接开门见山 一、创建项目 进入coding登录后,找到项目菜单,然后点击创建项目 二、创建代码仓库 进入项目中,针对不同需要创建代码仓库。大项目或者前后端分离分开开发的可以创建不同的代码仓库。 三、创建代码仓库与本地关联 项目管…

Java岗面试题--Java基础(日积月累,每日三题)

目录面试题一:JDK、JRE、JVM之间的区别面试题二:hashCode()与equals()之间的关系追问:为什么重写 equals() 就一定要重写 hashCode() 方法?面试题三:String、StringBuffer、StringBuilder的区别追问一:Stri…

vulfocus靶场通关(目录遍历)

uWSGI 目录穿越(CVE-2018-7490) uWSGI是一款Web应用程序服务器,它实现了WSGI、uwsgi和http等协议,并支持通过插件来运行各种语言,uWSGI 2.0.17之前的PHP插件,没有正确的处理DOCUMENT_ROOT检测,导致用户可以…

【运维】通过gotty实现网页代理访问服务器及K8S容器操作实践

Gotty 是Golang编写的可以方便的共享系统终端为web应用,是一个灵活强大的通过web访问终端的工具。本文将主要通过搭建Gotty实现对K8S容器的访问操作,开发如果想要正常的进行容器访问以及测试环境代码调试,最好是搭建一套与运维环境隔离的应用…

Gadget驱动程序框架

Gadget驱动程序框架 文章目录Gadget驱动程序框架参考资料:一、 怎样理解Gadget框架二、从硬件软件角度理解Gadget框架2.1 底层硬件操作_UDC驱动2.2 上层软件操作三、 从构造描述符的角度理解Gadget框架致谢参考资料: Linux下USB gadget设备详解Linux us…

Linux常用命令——quotaon命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) quotaon 激活Linux内核中指定文件系统的磁盘配额功能 补充说明 quotaon命令用于激活Linux内核中指定文件系统的磁盘配额功能。执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统…

STM32——I2C外设总线

文章目录一、I2C外设简介二、I2C框图三、I2C基本结构四、主机发送五、主机接收六、I2C的中断请求七、软件/硬件波形对比八、硬件I2C读写MPU6050电路设计关键代码状态监控函数一、I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条…

Go语言jwt无感刷新以及解决SSO单点登录限制

前言 为什么使用JWT? Jwt提供了生成token以及token验证的方法,而token是一种不用存储在服务端,只需要由用户携带即可实现认证的一种方式。在介绍JWT之前,我们也应该先了解cookie和session。 Cookie和Session 为每一位用户设定…

PLSQL Developer 代码助手卡顿优化

支持付费优化 原因分析 代码助手卡顿来源于(不考虑网络和软件版本等影响) A.从已连接的数据库的数据字典中,读取该表的列信息B.将读取到的列信息返回到plsql编辑器,并进行字符处理,然后显示如何优化B 这个勾勾是维…

【GPLT 二阶题目集】L2-034 口罩发放

为了抗击来势汹汹的 COVID19 新型冠状病毒,全国各地均启动了各项措施控制疫情发展,其中一个重要的环节是口罩的发放。 某市出于给市民发放口罩的需要,推出了一款小程序让市民填写信息,方便工作的开展。小程序收集了各种信息&#…

redis的配置文件

目录 介绍 1. 单位的设置方式 2. 可以包含其他文件内容 3. 网络配置相关 4. 通用 5. 安全 6. 限制 redis的配置文件名为redis.conf,一般会安装在/etc目录下。 如果找不到该文件可以使用find命令查找。 find . -name redis.conf 介绍 1. 单位的设置方式 只支持字…

client-go监听apiserver,监听http2逻辑分析

前言 最近做项目,需要写一个controller(k8s的插件),需要从k8s的apiserver取数据,就用了自带的client-go,但是client-go是怎么从apiserver获取数据的一直没有研究过,只是看网上,看官…

Hudi系列10:Flink流式插入

文章目录流式插入概述一. Hudi流式插入案例1(datagen)1.1 准备工作1.2 源端准备1.3 目标端表准备1.4 ETL准备1.5 数据验证1.6 通过SPARK SQL查看数据二. Hudi流式插入案例2(Kafka)2.1 准备工作2.2 源端准备2.2.1 创建kafka的topic (hudi_flink)2.2.2 Flink SQL Client消费kafka…

卷积神经网络中的权值共享和局部连接

卷积神经网络中的权值共享和局部连接卷积神经网络的两大特点权值共享全连接卷积神经网络的两大特点 权值共享,就是输入一张图,用一个filter去扫这张图,filter里面的数就叫权重,这张图每个位置都是被同样的filter扫的,…

Flink官方例子解析:WordCount

1. 简介 今天介绍的是官方子项目flink-examples-streaming里面的WordCount例子。 WordCount ,中文:单词统计,是大数据计算常用的例子。 2. WordCount需要实现的功能 监听指定目录下的文件,读取文件的文本内容;如果未…

Python继承机制及其使用

Python 类的封装、继承、多态 3 大特性,前面章节已经详细介绍了 Python 类的封装,本节继续讲解 Python 类的继承机制。继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法&#…

RASP技术进阶系列(三):重大漏洞自动化热修复

在上篇文章《RASP技术进阶系列(二):东西向Web流量智能检测防御》中提到,在企业日常安全运营以及HW场景下,应用漏洞攻击应急响应和恶意流量溯源分析是安全团队的重点工作。在恶意流量溯源方面,指向攻击来源的…

趁着你对象吃泡面的功夫,我修复了误删除的文件

文章目录前言一. linux下文件删除原理1.1 文件删除原理的简单介绍1.2 测试inode号是否容易被覆盖?二. 实验测试过程2.1 实验环境:2.2 新增一块硬盘测试2.3 对磁盘分区2.3.1 分区(使用fdisk分区)2.3.2 格式化,创建目录挂…

网络化多智能体系统的共识与合作

在所有参与者之间提供快速协议和团队合作的算法通过自组织网络系统实现有效的任务执行。By Reza Olfati-Saber, Member IEEE, J. Alex Fax, and Richard M. Murray, Fellow IEEE小于 翻译摘要:本文提供了一个理论框架,用于分析多智能体网络系统的共识算法…