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

JavaScript如何根据指定键值筛选对象数组

根据指定键的字符串值筛选对象数组的最优实现

针对提取数组中所有"Type":"Blue"对象的需求,JavaScript原生Array.prototype.filter()是综合可读性、性能、无依赖成本的最优方案,它是JS引擎内置的数组方法,执行效率优于手写遍历逻辑,语法简洁语义明确,是这类单条件筛选场景的行业标准实现。

实现代码

// 原始示例数据
const list = [
   {
       "data": [{}],
       "Name": "1",
       "Type": "Blue"
   },
   {
       "data": [{}],
       "Name": "2",
       "Type": "Red"
   },
   {
       "data": [{}],
       "Name": "3",
       "Type": "Blue"
    }
];

// 筛选逻辑
const result = list.filter(item => item.Type === "Blue");

运行后result会返回所有Type值为Blue的对象,也就是示例中Name为1、3的两条数据。

实现说明

  • 判断条件使用严格相等===,避免隐式类型转换带来的误匹配,确保只有字符串值完全为Blue的项被选中
  • 如果需要兼容数组项可能缺失Type属性的边界场景,可以把判断条件改为item?.Type === "Blue",通过可选链操作符避免读取undefined属性抛出错误
  • 该实现时间复杂度为O(n),和数组遍历的理论最优复杂度一致,无额外性能损耗
  • 若项目中已全局引入Lodash等工具库,也可以使用_.filter(list, { Type: "Blue" })实现同等效果,但无工具库依赖的场景下,原生方法是最优选择,不需要额外引入第三方代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:16:02