教你永远搞清JS中的几个数组方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

相信大家工作中一定经常用到JS中的数组方法,包括面试,这个也是常考的题,但是可能常常搞混,或者胡用乱用,或者干脆就一直foreach和for哈哈哈哈哈,今天教大家永远搞清这几个方法。
very easy。

重点讨论几个常常碰到的方法,以及他们和foreach的区别。


一、数组方法

1.filter

你手里有一个篮子装的都是苹果,你需要挑出来符合你条件的一些苹果,放进一个新的篮子,然后你拿走了这个新篮子,这个方法做了这件事

数组方法都有三个参数element(遍历中的当前元素),index(遍历中的当前元素索引)以及array(需要遍历的数组本身),以下所有数组方法都是如此,不过多赘述。

Array.filter((element,index,array) => {
  console.log(element,index,array);
});

这个是运行结果

它和foreach的区别就是,filter不影响原数组,且返回值是一个经过处理的新数组,而foreach的返回值是undefined

在这里插入图片描述

2.find

你手里有一个篮子装的都是苹果,你需要挑出来符合你条件的第一个苹果,如果有这个苹果,你就带走这个苹果,不然你就两手空空,这个方法做了这件事
在这里插入图片描述
如果没有符合条件的,返回值就是undefined。同样不影响原数组。

在这里插入图片描述

3.map

你手里有一个篮子装的都是苹果,你对篮子里的每个苹果都贴了个标签然后放进了一个新的篮子,你带走了这个篮子,这个方法做了这件事。
在这里插入图片描述

同样不影响原数组。

4.reduce

reduce也叫累加器,大概是比较难理解的一个方法了。

你有一个篮子是空的,有不同的人往里放苹果,你想知道这些苹果总计是多少。

它初始有两个参数

第一个回调函数callFn, 这个函数有两个参数,accumulator,上次调用callFn函数的返回值,也就是上次计算和的结果;currentValue,当前要进行运算的值。
第二个是reduce的初始值。试想这个初始值就是篮子里的初始苹果,可能是空篮子,那么苹果的个数就是0,也可能一开始篮子里有n个苹果,那初始值就是n。

array1.reduce((accumulator, currentValue) => {
    //........
  },initialValue);

我们试想一个场景,现在有一个空篮子,那么初始值就是0,有四个人往篮子里放苹果,第一个人放了1个苹果,第二个人放了2个苹果,第三个人放了3个苹果,第4个人放了四个苹果。

在这里插入图片描述
当然这只是简单的场景,工作中很可能菜菜的后端把一堆恶心的数组返回给你,可能对象套对象,数组套数组的。你需要去合并你需要的的数据(当然良心后端更多哈哈哈哈哈)。

5.some和every

这两个就看英文字面就很好理解。

some,译某些,某一,如果数组里有哪怕有一个数据满足你的要求,返回一个布尔值,true,然后终止循环;如果数组里没有一个数据满足你的要求,那就返回false。

在这里插入图片描述

every,译所有,数组里所有的数据都满足你的要求,才返回true,反之返回false。同样都不影响原数组。
在这里插入图片描述

6.sort

排序用的,就是把篮子里的苹果由大到小或者由小到大排好,其实后端SQL语句一行order by 就解决了,如果需要的话,前端还是让后端处理排序比较好,这样方便。

在这里我们还是说一下。一个参数回调函数fn,fn有两个参数,a和b,a-b,由小到大,b-a,由小到大。

在这里插入图片描述
如果什么都不传呢。

在这里插入图片描述
在这里插入图片描述

总结

好了,以上就是JS中常用的数组方法了,是不是很好理解,当然挑自己顺手的用,如果实在不理解了话,那就foreach也可以,毕竟能解决问题,什么办法都是好办法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值