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

如何从JavaScript数组中筛选出包含指定Type属性的对象

错误原因分析

你原有筛选逻辑不生效的核心原因是:没有Type属性的对象读取该属性时返回的是undefined,而undefined !== null的判断结果为true,因此所有数组元素都满足判断条件被返回。

正确筛选方案

根据不同的业务场景可以选择以下几种实现:

  • 方案1:hasOwnProperty严格判断(最推荐)
    不会受原型链同名属性干扰,也能兼容Type属性值为假值(0、false、空字符串等)的场景:

    var newVal = arr.filter(x => x.hasOwnProperty('Type'));
    
  • 方案2:判断属性值不为undefined
    适合确认不会手动给Type属性赋值为undefined的场景,写法更简洁:

    var newVal = arr.filter(x => x.Type !== undefined);
    
  • 方案3:in运算符判断
    适合需要匹配原型链上继承的Type属性的场景:

    var newVal = arr.filter(x => 'Type' in x);
    

如果你的业务中Type属性的值永远为真值,也可以用更简短的写法:

var newVal = arr.filter(x => x.Type);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:24:01