You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用用户自定义数量的筛选条件过滤JS数组?

解决方案

直接利用数组的includes()方法就能实现任意数量状态的筛选——它会检查当前元素的状态是否存在于筛选条件数组filters中,效果等价于多个||的逻辑判断,而且完全不需要提前知晓条件的数量:

// 注意:原代码中对象属性名存在拼写错误,`staus` 应改为 `status`
let profileList = [{name: "John", status: "green"}, {name: "Alex", status: "yellow"}, {name: "Jane", status: "green"}]

// 用户选择的筛选条件
let filters = ["green", "red"]

const filteredProfileList = profileList.filter(element => {
  return filters.includes(element.status);
});

console.log(filteredProfileList);
// 输出结果:[{name: "John", status: "green"}, {name: "Jane", status: "green"}]

额外优化

如果需要处理「用户未选择任何筛选条件(即filters为空数组)时返回全部数据」的场景,可以添加简单的判断:

const filteredProfileList = profileList.filter(element => {
  return filters.length === 0 || filters.includes(element.status);
});
  • includes()是ES6标准方法,兼容性覆盖所有现代浏览器及Node.js 6.0以上版本,无需额外兼容处理。

内容的提问来源于stack exchange,提问作者jeff3546

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:01:00