不同点:
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
相同点:
以上方法都不会修改数组中的包含的值。
注:在 filter()、forEach()中使用return true不能终止循环。
例如:
var arr = ['red','green','blue'];
//1、forEach迭代 遍历
arr.forEach(function (value){
if(value ==='green'){
console.log('找到该元素');
return true; //在forEach里用return true不会终止循环
}
else{
console.log('不是该元素');
}
})
//2、some迭代 遍历
arr.some(function (value){
if(value ==='green'){
console.log('找到该元素');
return true; //在some里用return true终止循环
//用return false表示没有找到,会继续循环
}
else{
console.log('不是该元素');
}
})
//filter迭代 遍历
arr.filter(function (value){
if(value ==='green'){
console.log('找到该元素');
return true; //在filter里用return true不会终止循环
}
else{
console.log('不是该元素');
}
})