js中filter,map和forEach的区别

350 阅读1分钟
filter函数:是一个用来过滤的函数。通过指定的过滤条件,删选出数组中符合条件的元素,并返回。


map函数:map会返回传入函数return的值。


forEach函数:实现对数组的遍历,和map函数与filter函数不同的是它没有返回值。


区别:
  • 首先定义一个对象数组

    const students=[
     { id: 0, name: 'jack', age: 13 }, 
     { id: 1, name: 'mary', age: 12 },
     { id: 2, name: 'sam', age: 12 },
     { id: 3, name: 'lisa', age: 15 }
    ];
  • 获取年龄大于13岁的学生,可以通过filter函数对数组进行遍历

students.filter(stu=>{
    return stu.age > 13;
}); 
//=>[{id: 3, name: "lisa", age: 15}]

  • 若是使用map函数我们会发现它返回了每一项的判断结果。

students.map(stu=>{
    return stu.age > 13;
}); //=> [false, false, false, true]
  • 我们可以利用map函数去过滤一些不必要的属性

students.map(stu=> stu.id);  // [0, 1, 2, 3]