filter是JavaScript数组方法,遍历原数组并返回满足条件元素的新数组,不修改原数组;回调函数需返回布尔值,常用参数为当前元素,适用于数字筛选(如n>10)和对象筛选(如u.status===’active’)。

filter 是 JavaScript 数组的一个方法,它会遍历数组每一项,根据你提供的函数返回 true 或 false,只保留返回 true 的元素,生成一个**新数组**,原数组不变。
filter 的基本用法
语法很简单:
const 新数组 = 原数组.filter(回调函数)
回调函数接收三个参数:当前元素、当前索引、原数组,最常用的是第一个(当前元素)。
回调函数必须返回布尔值(或能转为布尔值的值) 返回 true → 这个元素被保留在新数组里 返回 false → 这个元素被跳过
筛选数字:比如找出所有大于 10 的数
例子:
立即学习“Java免费学习笔记(深入)”;
const nums = [5, 12, 8, 15, 3];const bigNums = nums.filter(n => n > 10);// 结果:[12, 15]
这里箭头函数 n => n > 10 对每个数字判断是否大于 10,只有满足条件的才进新数组。
筛选对象:比如找所有状态为 “active” 的用户
例子:
立即学习“Java免费学习笔记(深入)”;
const users = [ { name: '张三', status: 'active' }, { name: '李四', status: 'inactive' }, { name: '王五', status: 'active' }];const activeUsers = users.filter(u => u.status === 'active');// 结果:[{ name: '张三', ... }, { name: '王五', ... }]
注意:filter 不修改原数组,users 保持不变,activeUsers 是全新数组。
常见误区提醒
filter 不会跳过空位或 undefined:如果数组有空槽(如 [1, , 3]),filter 仍会调用回调(但当前值是 undefined),需自行判断 返回非布尔值会被强制转换:比如返回 0、''、null 都算 false;返回对象、非零数、字符串都算 true(但不推荐依赖隐式转换) 不能中断遍历:filter 总是遍历全部元素,不像 some/every 可提前退出
基本上就这些。filter 的核心就是“留真去假”,写清楚判断逻辑,它就帮你把符合条件的元素挑出来,干净又安全。
以上就是JavaScript filter如何用_它如何筛选元素?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543381.html
微信扫一扫
支付宝扫一扫