对一个数组filter、some、map、forEach的操作分别有什么作用?

版权声明:本文为知乎机构号【技能树IT修真院】原创文章,未经允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/86574516

这里是修真院web小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解web知识/技能,本篇分享的是:

【 对一个数组filter、some、map、forEach的操作分别有什么作用?】

js语言中,数组对象(即Array类型)是一种非常常用的类型,ECMAScript数组的每一项可以保存任何类型的数据。

数组对象的方法有很多:“转换方法”、“栈方法”、“队列方法”、“重排序方法”、“操作方法”、“迭代方法”等。

这次就针对“迭代方法”的内容进行介绍。


ECMAScript5为数组定义了5个迭代方法:

every()、filter()、forEach()、map()、some()

每个方法都接收两个参数:

1、要在每一项上运行的函数。

2、运行该函数的作用域对象—this(可选)。

array.forEach(function () {

//do your staff here;

}, this);

传入这些方法中的函数参数本身会接收三个参数:

1、数组项的值;

2、该项在数组中的位置;

3、数组对象本身;

array.forEach(function (item, index, array) {

//do your staff here;

}, this);


every、filter、some、map、foreach的操作分别有什么作用?

every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

every返回的是布尔值,只要有一个返回false,结果就为false。

filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。

filter方法是对原数组进行筛选,将符合要求的值组成一个新数组,返回的是一个数组对象。

forEach():对数组中的每一项运行给定函数。这个方法没有返回值。

没有返回值

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

some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

返回一个布尔值。


JavaScript中reduce()方法

reduce方法也是对数组的每一项进行操作,一些人将其归于数组的迭代方法中。

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的又一个数组逐项处理方法

参数

callback(一个在数组中每一项上调用的函数,接受四个参数)

         previousValue(上一次调用回调函数时的返回值,或者初始值)

         currentValue(当前正在处理的数组元素)

         currentIndex(当前正在处理的数组元素下标)

         array(调用reduce()方法的数组)

initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值,如果没有提供初始值,则将使用数组中的第一个元素。)

没有设置initialValue,给数组一个每项相加的函数,运行结果为pre = 1;

pre = 1+2 //3            

pre = 3+3 // 6

return 10

设置了初始值为5

pre = 5;

pre = 5+1;

pre = 6+2;

return  15


参考文献:

《JavaScript高级程序设计》



 

【更多内容,欢迎加入交流群565763832与大家一起讨论交流】

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/86574516