千家信息网

JavaScript中数组Array的常用方法有哪些

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要为大家展示了"JavaScript中数组Array的常用方法有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"JavaScript中数组Ar
千家信息网最后更新 2025年01月31日JavaScript中数组Array的常用方法有哪些

这篇文章主要为大家展示了"JavaScript中数组Array的常用方法有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"JavaScript中数组Array的常用方法有哪些"这篇文章吧。

一.JavaScript中创建数组的方式

(1)使用 Array 构造函数:

var arr1 = new Array(); //创建一个空数组var arr2 = new Array(10); // 创建一个包含20项的数组var arr3 = new Array("zs","ls","ww"); // 创建一个包含3个字符串的数组

(2)使用数组字面量表示法:

var arr4 = []; //创建一个空数组var arr5 = [10]; // 创建一个包含1项的数组var arr6 = ["zs","ls","ww"]; // 创建一个包含3个字符串的数组

二、数组方法概括

方法名功能原数组是否改变
join()使用分隔符,将数组转为字符串并返回n
pop()删除最后一位,并返回删除的数据y
shift()删除第一位,并返回删除的数据y
push在最后新增一个或多个数据,返回长度y
unshift()在第一位新增一或多个数据,返回长度y
concat()合并数组,并返回合并之后的数据n
slice()截取指定位置的数组,并返回n
sort()排序(字符规则),返回结果y
reverse()反转数组,返回结果y
toString()直接转为字符串,并返回n
splice()删除指定位置,并替换,返回删除的数据y
valueOf()返回数组对象的原始值n
indexOf()查询并返回数据的索引n
lastIndexOf()反向查询并返回数据的索引n
forEach()参数为回调函数,会遍历数组所有的项,回调函数接受三个参数,分别为value,index,self;forEach没有返回值n
map()同forEach,同时回调函数返回数据,组成新数组由map返回n
filter()同forEach,同时回调函数返回布尔值,为true的数据组成新数组由filter返回n
every()同forEach,同时回调函数返回布尔值,全部为true,由every返回truen
some()同forEach,同时回调函数返回布尔值,只要由一个为true,由some返回truen
reduce()归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduce返回n
reduceRight()反向归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduceRight返回n
findIndex()

找到数组中第一个符合条件的元素的下标并不再遍历

n

三、方法详解

1.join()

功能:根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串。

参数:join(str);参数可选,默认为","号,以传入的字符作为分隔符。

var arr = [1,2,3];    console.log(arr.join());         //1,2,3    console.log(arr.join("-"));      //1-2-3

通过join()方法可以实现重复字符串,只需传入字符串以及重复的次数,就能返回重复后的字符串,函数如下:

function repeatString(str, n) {return new Array(n + 1).join(str);}console.log(repeatString("abc", 3)); // abcabcabcconsole.log(repeatString("Hi", 5)); // HiHiHiHiHi

2.pop()

pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项

ar arr = [1,2,3];console.log(arr.pop());     //3console.log(arr);           //[1,2]---原数组改变

3.shift()

功能:方法用于删除并返回数组的第一个元素。

var arr = [1,2,3]console.log(arr.shift());       //1console.log(arr);               //[2,3]---原数组改变

4.push()

功能:向数组的末尾添加一个或更多元素,并返回新的长度。

var arr = [1,2,3];console.log(arr.push("hello"));  //4console.log(arr);                //[1,2,3,"hello"]---原数组改变console.log(arr.push("a","b"));  //6console.log(arr);                //[1,2,3,"hello","a","b"]---原数组改变

5.unshift()

功能:向数组的开头添加一个或更多元素,并返回新的长度。

var arr = [1,2,3];console.log(arr.unshift("hello"));  //4console.log(arr);                   //["hello",1,2,3]---原数组改变console.log(arr.unshift("a","b"));  //6console.log(arr);                   //["a","b","hello",1,2,3]---原数组改变

6.concat()

功能: 将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。

const arr1 = [1,2,3];const arr2 = [4,5,6];const arr3 = arr1.concat(arr2);console.log(arr3);  //[1,2,3,4,5,6]

7.slice()

功能: 返回从原数组中指定开始下标到结束下标之间的项组成的新数组。

slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项--但不包括结束位置的项。

var arr = [1,3,5,7,9,11];var arrCopy1 = arr.slice(1);var arrCopy2 = arr.slice(1,4);var arrCopy3 = arr.slice(1,-2);var arrCopy4 = arr.slice(-4,-1);console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)console.log(arrCopy1); //[3, 5, 7, 9, 11]console.log(arrCopy2); //[3, 5, 7]console.log(arrCopy3); //[3, 5, 7]console.log(arrCopy4); //[5, 7, 9]

8.sort()

功能:对数组中的元素进行排序,默认是升序。

var arr = [6,1,5,2,3];console.log(arr.sort());    //[1, 2, 3, 5, 6]console.log(arr);           //[1, 2, 3, 5, 6]---原数组改变

9.reverse()

功能: 反转数组项的顺序。

var arr = [13, 24, 51, 3];console.log(arr.reverse()); //[3, 51, 24, 13]console.log(arr); //[3, 51, 24, 13](原数组改变)

10.toString()

功能:转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。

var arr = [1,2,3];console.log(arr.toString());     //1,2,3console.log(arr);                //[1,2,3]---原数组未改变

11.splice()

功能:很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。

删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。

插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。

替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。

splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。

var arr = [1,3,5,7,9,11];var arrRemoved = arr.splice(0,2);console.log(arr); //[5, 7, 9, 11]console.log(arrRemoved); //[1, 3]var arrRemoved2 = arr.splice(2,0,4,6);console.log(arr); // [5, 7, 4, 6, 9, 11]console.log(arrRemoved2); // []var arrRemoved3 = arr.splice(1,1,2,4);console.log(arr); // [5, 2, 4, 4, 6, 9, 11]console.log(arrRemoved3); //[7]

12.valueOf()

功能:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中

var arr = [1,2,3];console.log(arr.valueOf());         //[1,2,3]console.log(arr);                   //[1,2,3]//为了证明返回的是数组自身console.log(arr.valueOf() == arr);  //true

13.indexOf()

功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。

参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

var arr = ["h","e","l","l","o"];console.log(arr.indexOf("l"));        //2console.log(arr.indexOf("l",3));      //3console.log(arr.indexOf("l",4));      //-1console.log(arr.indexOf("l",-1));     //-1console.log(arr.indexOf("l",-3));     //2

14.lastIndexOf()

功能:根据指定的数据,从右向左,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。

参数:lastIndexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

var arr = ["h","e","l","l","o"];console.log(arr.lastIndexOf("l"));        //3console.log(arr.lastIndexOf("l",3));      //3console.log(arr.lastIndexOf("l",1));      //-1console.log(arr.lastIndexOf("l",-3));     //2console.log(arr.lastIndexOf("l",-4));     //-1

15.forEach()

功能:对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。

参数: 都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。

var arr = [1, 2, 3, 4, 5];arr.forEach(function(x, index, a){console.log(x + '|' + index + '|' + (a === arr));});// 输出为:// 1|0|true// 2|1|true// 3|2|true// 4|3|true// 5|4|true

16.map()

功能:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

如果你想要数组里的每一个值都发生变化就使用map

 let arr = [10, 30, 50, 60, 120, 230, 340, 450]        let newArr = arr.map(n => {            return n * 2        })        console.log(newArr);

17.filter()

功能: 过滤,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];var arr2 = arr.filter(function(x, index) {return index % 3 === 0 || x >= 8;}); console.log(arr2); //[1, 4, 7, 8, 9, 10]

18.every()

功能:判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

var arr = [1, 2, 3, 4, 5];var arr2 = arr.every(function(x) {return x < 10;}); console.log(arr2); //truevar arr3 = arr.every(function(x) {return x < 3;}); console.log(arr3); // false

19.some()

功能: 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

var arr = [1, 2, 3, 4, 5];var arr2 = arr.some(function(x) {return x < 3;}); console.log(arr2); //truevar arr3 = arr.some(function(x) {return x < 1;}); console.log(arr3); // false

20.reduce()

功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。

参数:

第一个参数是:accumulator是当前聚合值,

第二个参数是: current是数组循环时的当前元素

第三个参数是: index 是数组元素的索引值

第四个参数是: Array 是数组本身

int : 是accumulator的初始值 可以自行进行设置

一般常用的是前面的两个参数,后面两个参数不常用,常用的使用场景便是数组的求和

 // 作用:对数组中所有的内容进行汇总   要传至少两个值        let arr = [10, 30, 50, 60, 120, 230, 340, 450]        let newArr = arr.reduce((pre, n) => {            return pre + n        }, 0)        console.log(newArr);

21.reduceRight()

功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,然后构建一个最终返回的值。

参数:同reduce。

var arr = [1,2,3,4,5];var sum = arr.reduceRight(function(pre, cur, index, array){return pre + cur;},10);console.log(sum); //25

22.findIndex()

功能: 返回数组中满足提供的测试函数的第一个元素的索引。若没有则返回-1。

let arr = [10, 2, 9, 17, 22];let index = arr.findIndex((item) => item > 13)console.log(index);  // 3

以上是"JavaScript中数组Array的常用方法有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数组 参数 方法 功能 位置 数据 函数 字符 查询 字符串 元素 常用 条件 两个 内容 同时 数量 索引 项数 只需 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全宣传周网安基地 河北软件开发工资 自己搭建一个智能家居服务器 软件开发技术 kpi指标 深圳爱豆网络技术有限公司面试 为何老是出现语音服务器未连接 阿里云服务器服务哪些国家 数据库建立会员表 连接中国vpn服务器 北京一站式日志审计服务器 监控录像机如何设置存储服务器 软件开发用32寸显示器 服务器怎么开局给新手礼包 网络安全协议算法 应用软件开发有哪些风险 我国网络安全保护的基本发是 中国各省市碳排放数据库 关于网络安全资讯的APP 普陀区互联网络技术服务公司 腾讯云服务器网页登陆 秦皇岛展厅多媒体软件开发公司 互联网公司金融科技股 艳阳网络技术工作室 腾讯服务器放在哪里降温 阿里云rpa 数据库 文件服务器和客户模式区别 软件开发项目实施制度 广州游戏软件开发公司有哪些特点 网络安全服务招标需求 RAC 服务器管理
0