📅  最后修改于: 2023-12-03 15:16:09.128000             🧑  作者: Mango
在 JavaScript 中,数组有两个常用的方法 find() 和 filter(),它们都可以用于筛选数组中的元素。这两个方法有什么区别呢?
Array.find()
方法返回数组中第一个满足测试函数的元素。如果没有满足条件的元素,则返回 undefined。
arr.find(callback[, thisArg])
callback
函数需要返回一个布尔值(true 或 false),表示当前遍历到的元素是否满足条件。
thisArg
可选,执行 callback
时 this
指向的对象。
const arr = [1, 2, 3, 4, 5];
const result = arr.find(item => item > 3);
console.log(result); // 4
Array.filter()
方法创建一个新数组,其中包含所有满足测试函数的元素。
arr.filter(callback[, thisArg])
callback
函数需要返回一个布尔值(true 或 false),表示当前遍历到的元素是否满足条件。
thisArg
可选,执行 callback
时 this
指向的对象。
const arr = [1, 2, 3, 4, 5];
const result = arr.filter(item => item > 3);
console.log(result); // [4, 5]
Array.find()
返回符合条件的第一个元素,而 Array.filter()
返回所有符合条件的元素组成的新数组。
Array.find()
是找到就返回,而 Array.filter()
则是把所有符合条件的元素都添加到新数组中。
Array.find()
使用的回调函数需要返回一个布尔值,表示是否满足条件,而 Array.filter()
的回调函数也需要返回一个布尔值,但是表示的是是否需要把当前元素加入新数组。
Array.find()
和 Array.filter()
都是常用的数组筛选方法,它们的区别在于返回值和实现方式。在实际使用中,我们需要根据不同的需求选择合适的方法,以达到最佳的效果。