首先,这两个方法map()和filter()都是对调用他们的数组进行遍历。那么在项目中,什么情况下使用map(),又在什么情况下使用filter()呢?
1、map()的使用方法:

arr.map((item,index,array)=>{……})

2、filter()的使用方法:

arr.filter((item,index,array)=>{……})

都是将函数写在方法的括号里,参数也一样,行参的参数说明:

item:当前处理的元素

index:当前处理元素的索引

array :调用map 或者filter 方法数组本身

下面举一个例子:

let arr=[3,5,17,15,4,14];
let res1=arr.map((item,index,array)=>{
  // return array[index]; //用这种方法也可以获取到当前处理的元素
  return item>5;
console.log(res1)//[ false, false, true, true, false, true ]

map()方法返回的结果是:[ false, false, true, true, false, true ]

也就是说符合条件或者不符合条件的,都将boolean类型值返回给到新的数组。

let arr=[3,5,17,15,4,14];
let res2=arr.filter((item,index,array)=>{
  return item>5;
console.log(res2) //[ 17, 15, 14 ]

filter()方法返回的结果是:[ 17, 15, 14 ]

也就是说符合条件就会把值返回到新的数组中

区别:
可以看到,
map() 的结果只是对当前元素调用函数后,将符合条件boolean类型值返回给到新的数组
filter() 会将结果为true的数组值存到新的数组里面。