js数组:every()、some()、filter()、forEach()

这四个数组方法都接受两个参数(fn, thisArg)如:

arr.every(function(item,index,arr){
    //do something
}, thisArg)

其中fn是函数方法接受三个参数分别为item(当前值/必选)、index(当前值位置/可选)、arr(传入的数组/可选)。thisArg作用域(this执行时使用的值callback/可选)。
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
如:

var arr = [1,2,3,4,5,4,3,2,1];
var everyResult = arr.every(function(item, index, array){
     return (item > 2);
}); 
console.log(everyResult); //false    就如every的意思(每一个),数组中每一项必须大于2时才会返回true

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

var arr = [1,2,3,4,5,4,3,2,1];
var everyResult = arr.some(function(item, index, array){
     return (item > 2);
}); 
console.log(everyResult); //true    就如some的意思(某一个),数组中某一项只要大于2时就会返回true

filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组,它利用指定的函数确定是否在返回的数组中包含某一项

var arr = [1,2,3,4,5,4,3,2,1];
var everyResult = arr.filter(function(item, index, array){
     return (item > 2);
}); 
console.log(everyResult);   //[3,4,5,4,3]  就如filter的意思(过滤),返回数组元素大于2的数组元素,过滤掉小于2的元素。

map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。

var arr = [1,2,3,4,5,4,3,2,1];
var mapResult = arr .map(function(item, index, array){
 return item * 2;
});
alert(mapResult);   //[2,4,6,8,10,8,6,4,2] ,就如map的意思(测绘,为了保持一致还是翻译为计算比较好),返回数组元素经过计算后的结果。

最后,这四中操作数组的方法都不会改变原有数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容