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

Express.js中filterByQuery函数查询动物数据的功能原理咨询

解析 filterByQuery 函数的工作机制

这个函数的核心作用是根据传入的查询参数,从动物数据数组中筛选出匹配的条目,具体工作流程如下:

  • 初始赋值:首先把完整的动物数组 animalsArray 赋值给 filteredResults,此时结果集包含所有动物的数据。
  • 按饮食类型筛选:如果查询参数 query 包含 diet 属性,就用数组的 filter 方法,只保留饮食类型和 query.diet 完全匹配的动物,更新 filteredResults 为筛选后的数组。
  • 按物种筛选:同理,如果 query 里有 species 属性,对当前的 filteredResults 再次筛选,只保留物种匹配的动物。
  • 按名称筛选:如果 query 里有 name 属性,最后一次筛选出名称完全匹配的动物。
  • 返回结果:经过所有符合条件的筛选后,返回最终的结果数组。

关键细节说明

  • 多个查询参数会叠加生效:比如同时传入 diet=Carnivore 和 species=Cat,函数会先筛选出食肉动物,再从中找出猫科动物,返回同时满足两个条件的结果。
  • 筛选是严格匹配:=== 运算符要求属性值和查询参数完全一致(区分大小写、数据类型),比如查询 name=lion 不会匹配名称为 Lion 的动物。

示例演示

假设动物数组如下:

const animalsArray = [
  { name: 'Lion', species: 'Cat', diet: 'Carnivore' },
  { name: 'Deer', species: 'Deer', diet: 'Herbivore' },
  { name: 'Tiger', species: 'Cat', diet: 'Carnivore' }
];
  • 当传入 query={diet: 'Carnivore'},返回 [Lion, Tiger];
  • 当传入 query={species: 'Cat', name: 'Lion'},返回 [Lion]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:35:31