js数组用法

去面试的时候问到我一个问题,你能说出来多少种数组的方法跟用法,我当时只说出来十一个,回来以后才想起来还有很多种,现在整理一下,没有排名,想起那个写那个

1:forEach

从头遍历数组,没有返回值,有三个参数,如arr.forEach( (value,i,a) => { } );value代表了arr数组里的每一个元素,i代表元素的索引值(下标),a代表数组本身。不会改变原数组

2:map

也是遍历数组,把数组每一个元素传递给指定函数,有返回值,需要用return,返回值是数组,不会改变原数组

3:filter

这个是用到比较多的,筛选方法。筛选满足条件的元素。返回值是数组。不改变数组本身。不会改变原数组

4:some

这个方法不常用,不创建新数组,不改变原数组,只要有一个满足条件就可以,判断为true直接返回true,否则返回false。

5:every

跟some有异曲同工之妙,不创建新数组,不改变原数组,必须全部满足条件才会返回true,否则返回false,但是有一个不满足条件,直接返回false,不会继续执行。

6:find

筛选方法,只会找第一个符合条件的元素,找到之后会直接返回,不会继续执行。不会改变原数组

7:reduce

他的用法就不一样了,可以说是累加用法。reduce(function(per,next){...},0)要有两个参数,第一个参数一定要初始化。0的意思,就是初始化per。0的这个位置,如果是数值,那么最后的运算就是数值类型,也可以是[ ]。next代表数组的每一项。不会改变原数组

还有一些刚开始接触js时候学习的方法:

8:push

如arr.push(1);那么这个1就会被添加到arr数组末尾,成为数组的元素。改变原数组

9:pop

没有参数,如arr.pop();删除数组的最后一个元素,返回值是被删除的元素,改变原数组

10:unshift

跟push用法道理相同,添加元素到数组头部,成为数组的第一个元素。改变原数组

11:shift

跟pop用法道理相同,删除数组第一个元素,返回被删除的元素,改变原数组

12:concat

将两个数组连接起来合并成一个新数组,如:

let arr1=[1,2,3];let arr2=[4,5,6];   let arr=arr1.concat(arr2);  arr就会变成[1,2,3,4,5,6];不改变原数组

13:splice

删除或者插入指定位置的元素,如arr.splice(index,num,element1,.....,elementX);

index表示要删除的数组下标,num表示要删除元素的个数,element1--elementX表示从index开始插入的元素,可选值。改变原数组

14:reverse

反转数组元素,如arr.reverse();arr如果是[1,2,3,4,5],使用以后就会变成[5,4,3,2,1];改变原数组

15:join

数组转字符串,参数是在每个元素中间穿插。如arr.join("-");arr为[1,2,3];使用后返回值变为1-2-3;不改变原数组

16:slice

截取数组,有两个参数,如arr.slice(2,3);3为可选值,从数组下标为2的开始截取,截取到下标为3,如果没有3,截取到最后。如果只有一个参数且为负数,那么截取是从后向前开始。不该变原数组

17:toString

由于数组是对象,所以可以用这个转字符串方法,如arr.toString();arr为[1,2,3],返回值为1,2,3,不改变原数组

18:sort

数组元素排序,参数必须是函数,函数有两个参数,a,b,有return。

 

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。若 a 等于 b,则返回 0。若 a 大于 b,则返回一个大于 0 的值。改变原数组

19:indexOf

查找元素并返回其下标,如果没找到返回-1,参数就是要查找的元素,不改变原数组

还有一下不属于数组的方法,但是可以用来操作数组的:

20:Math.min.apply

如Math.min.apply(null,[1,2,3]);查找数组中的最低值,返回值为1,max用法相同,查找数组中最大值。不改变原数组

目前就想到这些,如果错误,请通知我改正,谢谢观看

 

posted @ 2020-11-01 19:39  大大的可爱  阅读(148)  评论(1编辑  收藏  举报