filter是JavaScript数组方法,创建新数组保留回调函数返回true的元素,不修改原数组;回调函数接收element、index、array三个参数,常用于数字、对象、字符串等过滤场景。
filter 是 JavaScript 数组的内置方法,用来创建一个新数组,其中包含所有通过指定条件(回调函数)的元素。它不会修改原数组,而是返回符合条件的元素组成的新数组。
语法很简单:array.filter(callback(element, index, array))。回调函数接收三个参数:
只要回调函数返回 true,该元素就会被保留在新数组中;返回 false 或其他假值则被过滤掉。
过滤数字数组:比如只保留大于 10 的数
const nums = [5, 12, 8, 20, 3];过滤对象数组:比如筛选状态为 "active" 的用户
const users = [配合 includes 或 indexOf
做关键词过滤:比如找出包含某个字符的字符串
[1, , 3] 中的空项),但会把 undefined 当作真实值处理——是否保留取决于你的判断逻辑undefined,等价于 false,该元素会被过滤掉null、undefined、0、false、'' 等假值?可以简写为 arr.filter(Boolean)
用 for 循环也能实现类似效果,但 filter 更声明式、更简洁、更不易出错。它强调“我要什么”,而不是“我怎么一步步拿”。适合逻辑清晰、条件明确的筛选场景。
基本上就这些。用熟了 filter,处理数组筛选就变得很自然。