发表于: 2017-05-09 09:30:59
1 1046
PPT:
【JS-04】对一个数组FILTER、SOME、MAP、FOREACH的操作分别有什么作用?
1.背景介绍
在程序代码之中,数组变量,即Array类型,是非常常用的类型,数组中的每一项可以保存任何类型的数据,所以使用方便的同时,也意味着需要更多的方法来进行数据处理。
在javascript高级程序设计中,对Array类型的方法介绍就有9种:“检测数组”、“转换方法”、“栈方法”、“队列方法”、“重排序方法”、“操作方法”、“位置方法”、“迭代方法”、“归并方法”。
这次就针对“迭代方法”的内容进行介绍。
2.知识剖析
在“迭代方法”中,有以下5种方法:
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
在这些方法中,every()和some()使用方式最是相似,对every()来说,传入的函数必须对每一项都返回true,这个方法才返回true;否则,它就返回false。而some()方法则是只要传入的函数对数组中的某一项返回true,就会返回true。其中区别就像是逻辑运算符号的 && 和 || 一样。
var arr = [1,2,3,4,5,6,7,8];
var aEvery = arr.every(function(item,index,array){
console.log(item,index,array);
return (item>4)
})
console.log('every',aEvery);//false
var aSome = arr.some(function(item,index,array){
console.log(item,index,array);
return (item>4)
})
console.log('some',aSome);//true
filter()函数,它利用指定的函数确定是否在返回的数组中包含某一项。例如,要 返回一个所有数值都大于2 的数组,可以使用以下代码。
var aFilter = arr.filter(function(item,index,array){
return item>4
})
console.log('filter',aFilter);
map()也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。例如,可以给数组中的每一项乘以2,然后返回这些乘积组成的数组,如下所示。
var aMap = arr.map(function(item,index,array){
return item * 2
})
console.log('map',aMap);
最后一个方法是forEach(),它只是对数组中的每一项运行传入的函数。这个方法没有返回值,本质上与使用for 循环迭代数组一样。来看一个例子。
var aForeach = arr.forEach(function(item,index,array){
return item
})
console.log('forEach',aForeach);
参考文献
参考一:javascript高级程序设计
PPT链接:https://ptteng.github.io/PPT/PPT/js-04-Array%20iteration%20method.html#/
视频链接:https://v.qq.com/x/page/u0501vxmq9p.html
评论