背景:在数组中过滤出符合条件的数据,可以使用es6中的find和filter,这两个都有什么区别呢?分析如下
const list = [{'name':'1',index:1},{'name':'2'},{'name':'1'}]
let list2 = list.find(i=>i.name==='1')
let list3 = list.filter(i=>i.name==='1')
console.log(list); [ { name: '1', index: 1 }, { name: '2' }, { name: '1' } ]
console.log(list2); { name: '1', index: 1 }
console.log(list3);[ { name: '1', index: 1 }, { name: '1' } ]
find和filter都是不会改变原数组的方法
但是find只查出第一个符合条件的结果,像例子里find返回了一个对象而不是数组,而filter会返回全部符合条件的结果,其结果仍然是一个数组