这四个数组方法都接受两个参数(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的意思(测绘,为了保持一致还是翻译为计算比较好),返回数组元素经过计算后的结果。
最后,这四中操作数组的方法都不会改变原有数组。
网友评论