当前位置:网站首页 > Vue.js开发 > 正文

js数组方法有哪些(js数组方法总结)



在日常开发中,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很遍历的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会忘记,那么在这里我整理了31个数组的方法,供大家查阅。

1:concat();
功能:合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组;

 

也可以使用es6的扩展运算符,不会改变原数组

 

 2:join();
功能:将数组转为字符串并返回转化的字符串数据,不会改变原来的数组;
注意:()中用双引号包括自己想用的分隔符,默认为逗号,这里方便观察,我用了-

 

3:pop();
功能:删除数组的最后一位,并且返回删除的数据,会改变原来的数组

 

4:shift();
功能:删除数组的第一位数据,并且返回新数组的长度,会改变原来的数组

 

5:unshift();
功能:在数组的首位新增一个或多数据,并且返回新数组的长度,会改变原来的数组
注意:unshift()方法返回的数据是新数组的长度,它增加的数据可以是一个也可以是多个,可以理解为增加一连串的数据,

 

6:push();
功能:在数组的最后一位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组
注意:push()方法返回的是数据是新数组的长度,它增加的数据可以是一个也可以是多个,可以理解为增加一连串的数据

 

7:reverse();
功能:将数组的数据进行反转,并且返回反转后的数组,会改变原数组

 

8:sort();
功能:对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组
注意:
8.1:这里的排序是针对字符的排序,先使用数组的toString()方法转为字符串,再逐位比较,3是大于12的,因为首位3>1,不要与Number型的数据排序混淆
8.2:str2数组中增加了三个字符,可以看到,比较的时候,zoom是最大的,因为首位的英文字母通过ASCII码可以转为相应的数值,再根据数值比较

 

8.3:排序问题
参数:sort(callback) 如果需要按照数值排序,需要传参。sort(callback),callback为回调函数,该函数应该具有两个参数,比较这两个参数,然后返回一个用于说明这两个值的相对顺序的数字(a-b)。其返回值如下:
若 a 小于 b,返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

 

9:slice();
功能:截取指定位置的数组,并且返回截取的数组,不会改变原数组
参数:slice(startIndex, endIndex)
注意:可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end),strat为必选,表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。

 

10:splice()
功能:向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。
参数:splice(start,num,data1,data2,…); 所有参数全部可选。第一个参数是小标,第二个是删除的长度,第一个参数可以为负数

 

在这里插入图片描述
如果第一个参数为负数就从后面往前数,入上图
splice会改变原数组

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

 

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

 

13:IndexOf();
功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找

 

14:lastIndexOf();
功能:根据指定的数据,从左向右,lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

 

在这里插入图片描述

在这里插入图片描述
根据我的发现,indexOf的第二个参数传进去有用,lastIndexOf第二个参数跟没传一样

15:forEach();
功能:ES5新增的方法,用来遍历数组,没有返回值,
参数:forEach(callback);callback默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。

 

16:map();
功能:
1.同forEach功能;
2.map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。
参数:map(callback);callback默认有三个参数,分别为value,index,self。跟上面的forEach()的参数一样

 

17:filter();
功能:1.同forEach功能;2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)。
参数:filter(callback);callback默认有三个参数,分别为value,index,self。

 

18:every();
功能:判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。
参数:every()接收一个回调函数作为参数,这个回调函数需要有返回值,every(callback);callback默认有三个参数,分别为value,index,self。
功能1:当回调函数的返回值为true时,类似于forEach的功能,遍历所有;如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置。

 

功能2:当每个回调函数的返回值都为true时,every的返回值为true,只要有一个回调函数的返回值为false,every的返回值都为false

 

19:some();
功能:判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
参数:some()接收一个回调函数作为参数,这个回调函数需要有返回值,some(callback);callback默认有三个参数,分别为value,index,self。
功能1:因为要判断数组中的每一项,只要有一个回调函数返回true,some都会返回true,所以与every正好相反,当遇到一个回调函数的返回值为true时,可以确定结果,那么停止执行,后面都数据不再遍历,停在第一个返回true的位置;当回调函数的返回值为false时,需要继续向后执行,到最后才能确定结果,所以会遍历所有数据,实现类似于forEach的功能,遍历所有。

 

在这里插入图片描述
20.reduce();
迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
参数:
callback:
previousValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue 必选 --数组中当前被处理的数组项
index 可选 --当前数组项在数组中的索引值
array 可选 --原数组
initialValue: 可选 --初始值
实行方法:回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值.

 

arr.reduce()拓展(高级用法)
(1)计算数组中每个元素出现的次数

 

(2)数组去重

 

(3)将多维数组转化为一维

 

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

22 Array.from()
将伪数组变成数组,就是只要有length的就可以转成数组。 —es6

 

在这里插入图片描述
在这里插入图片描述
原来的不会发生改变

23 Array.of()
将一组值转换成数组,类似于声明数组 —es6

 

ps:但是new Array()有缺点,就是参数问题引起的重载

 

24 arr.copyWithin()
在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组
参数:
target --必选 索引从该位置开始替换数组项
start --可选 索引从该位置开始读取数组项,默认为0.如果为负值,则从右往左读。
end --可选 索引到该位置停止读取的数组项,默认是Array.length,如果是负值,表示倒数

 

在这里插入图片描述
25 arr.find(callback)
找到第一个符合条件的数组成员

 

26 arr.findIndex(callback)
找到第一个符合条件的数组成员的索引值

 

27 arr.fill(target, start, end)
使用给定的值,填充一个数组,ps:填充完后会改变原数组
参数:
target – 待填充的元素
start – 开始填充的位置-索引
end – 终止填充的位置-索引(不包括该位置)

 

在这里插入图片描述
28 arr.includes()
判断数中是否包含给定的值

 

ps:与indexOf()的区别:
indexOf()返回的是数值,而includes()返回的是布尔值
indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断、

29 arr.keys()
遍历数组的键名

 

30 arr.values()
遍历数组键值

 

31 arr.entries()
遍历数组的键名和键值

 

哪些数组方法会改变原数组
unshift();
push();
shift();
pop();
sort();
reverse();
splice();
copyWithin()
fill()
这九个数组方法在上面都有过介绍了,可以看出,再用这些方法的时候,原数组是会被改变的。

到此这篇js数组方法有哪些(js数组方法总结)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue.js 菜鸟教程(vue.js入门教程)2024-12-16 23:27:04
  • 报文解析工具V2.3(报文解析工具J)2024-12-16 23:27:04
  • jsjl是什么意思(jsl啥意思)2024-12-16 23:27:04
  • vue下载安装(vue下载安装包)2024-12-16 23:27:04
  • vue 钩子函数(vue钩子函数是什么)2024-12-16 23:27:04
  • vue3怎么安装(vue3怎么安装elementui)2024-12-16 23:27:04
  • pcie5.0协议(pcie5.0有什么用)2024-12-16 23:27:04
  • js深拷贝数组对象(js 深拷贝数组)2024-12-16 23:27:04
  • pcie5.0固态硬盘速度(pcie 5.0固态)2024-12-16 23:27:04
  • map转json字符串再转对象(map转为json对象)2024-12-16 23:27:04
  • 全屏图片