这里直接上代码,根据结果来看比较直观
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 筛选出所有符合条件的对象,并将这些对象输出为一个数组