一块儿比较遍历数组的方法 map forEach find fiter

 

来来来先上一个数组:
const pets = [
  { type: 'Dog', name: 'Max'},
  { type: 'Cat', name: 'Karl'},
  { type: 'Dog', name: 'Tommy'},
]
let pet;
复制代码

仔细一个这个数组的每一项都是对象数组

  • map  操做

pet = pets.map((item)=>{
  if (item.type ==='Dog' && item.name === 'Tommy') {
    return item
  }
})
console.log(pet)复制代码

输出结果以下图:bash


  • forEach 操做

pet = pets.forEach((item)=>{
  if (item.type ==='Dog' && item.name === 'Tommy') {
    return item
  }
})
console.log(pet)复制代码

输出结果以下图:ui


  • filter 操做

pet = pets.filter(item =>{return  item.type ==='Dog' && item.name === 'Tommy'});
console.log(pet)复制代码

输出结果以下图:spa


  • find 操做:

pet = pets.find(item =>{return  item.type ==='Dog' && item.name === 'Tommy'});
console.log(pet)复制代码

输出结果以下图:3d


各类方法输出结果咱们都看到了,来来来咱们总结一波:code

1. map遍历每一项时并不会知足条件就中止执行,返回一个新的数组,遍历时知足条件的会被push进去,不知足的则push undefined因此新数组的长度和老数组的长度同样cdn

2. forEach遍历返回的是undefined 他就是简单的遍历对象

3. filter遍历会返回一个新的数组,可是是仅仅知足条件的会被push进去blog

4. find遍历则返回的是知足条件的那一项string

这仅仅是针对返回值的比较,还有其余方面的不一样

还有他们都不会改变原数组哦

因此根据你本身的需求,来选择!!!!

相关文章
相关标签/搜索