JavaScript 中 find 和 filter 的区别

这里直接上代码,根据结果来看比较直观

let arr = [
  {
    name: 'Rick',
    age: 60
  },
  {
    name: 'Rick',
    age: 70
  },
  {
    name: 'Morty',
    age: 14
  }
]
let findResult = arr.find(i => i.name === 'Rick')
let filterResult = arr.filter(i => i.name === 'Rick')

console.log(arr); 
/*  输出结果
  [
    {
      name: "Rick",
      age: 60
    },
    {
      name: "Rick",
      age: 70
    },
    {
      name: "Morty",
      age: 14
    }
  ]
*/
console.log(findResult);   // {name: "Rick", age: 60}
console.log(filterResult);  // [{name: "Rick", age: 60}, {name: "Rick", age: 70}]

根据以上代码输出结果,可以发现 find 和 filter 都不改变原数组

二者的区别在于:
find 查找出第一个符合条件的对象,并返回这个对象
filter 筛选出所有符合条件的对象,并将这些对象输出为一个数组

posted @ 2021-02-03 19:30  Leophen  阅读(186)  评论(0编辑  收藏  举报