一、共同点:
从参数:都接受一个函数作为参数,该函数带有三个参数,item,index,array,即数组某项,数组索引,数组本身。
从返回值:every和some都返回一个布尔值true或false,filter和map返回一个数组,forEach没有返回值
二、实例分析
(1)every:都真才真,即对函数以数组中的每个元素进行调用,对return语句中的表达式进行求值,都返回true时every函数才返回true。
var arr = [1, 2, 3, 3, 4, 5 ,6],
var newArr = arr.every(function(item, index, array){
return item > 0;
});
var anotherArr = arr.every(function(item, index, array){
return item ;
});
console.log(newArr);//true
console.log(anotherArr);//true
(2)some:有真就真,有一项返回true时every函数就返回true。
var arr = [false, undefined, '', NaN, 0 ,null,1];
var newArr = arr.some(function(item, index, array){
return item > 0;
});
var anotherArr = arr.some(function(item, index, array){
return item ;
});
console.log(newArr);//true
console.log(anotherArr);//true
(3)filter:返回return语句求值为真的项组成的数组。
var arr = [false, undefined, '', NaN, 0 ,null,1,2];
var newArr = arr.filter(function(item, index, array){
return item > 0;
});
var anotherArr = arr.filter(function(item, index, array){
return item ;
});
console.log(newArr);//[1,2]
console.log(anotherArr);//[1,2]
(4)map():接受一个函数作为参数,返回该函数参数对数组中每个元素调用的返回值组成的数组,如果没有含函数定义中没有返回值,就返回undefined。
var arr = [false, undefined, '', NaN, 0 ,null,1,2];
var newArr = arr.map(function(item, index, array){
return item > 0;
});
var anotherArr = arr.map(function(item, index, array){
});
var arr2 = [1, 2, 3, 4, 5 ,6];
var thirdArr = arr2.map(function(item,index,array){
return item + 1;
})
console.log(arr);//[false, undefined, '', NaN, 0 ,null,1,2]
console.log(newArr);//[false, false, false, false, false, false, true, true]
console.log(anotherArr);//[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
console.log(thirdArr)//[2, 3, 4, 5, 6, 7]
(5)forEach():接受一个函数作为参数,该函数参数对数组中每个元素调用,和map()的区别在于没有返回值,如果仅仅想迭代数组,使用forEach(),如果对数组进行一些集体更改,请使用map()。
var arr = [1, 2, 3, 4, 5 ,6];
var newArr = arr.forEach(function(item, index, array){
console.log(item + index);//依次输出1,3,5,7,9,11
});
var anotherArr = arr.forEach(function(item, index, array){
return item + index;//return语句没有用
});
console.log(arr)//[1, 2, 3, 4, 5 ,6]
console.log(newArr);//undefined
console.log(anotherArr);//undefined
————————————————
版权声明:本文为CSDN博主「陈逍遥」的原创文章
原文链接:https://blog.csdn.net/zhuanyemanong/article/details/80400494