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

如何从JavaScript对象数组中过滤存在空值属性的对象?

过滤数组中含空值或null属性的对象

要过滤掉数组中任意属性值为null或空字符串("")的对象,你可以用数组的filter方法搭配Object.values和every方法来实现:

实现代码

const originalArray = [{
        "ServiceArea": "NON-CIO",
        "ManagingDirector": "qwe",
        "Lead": "abc",
        "Manager": "xyz",
        "id":"1",
        "Designation":"COO"
    },
    {
        "ServiceArea": "NON-CIO",
        "ManagingDirector": "dfg",
        "Lead": "",
        "Manager": "lkj",
        "id":"2",
        "Designation":"CTO"
    },
    {
        "ServiceArea": "NON-CIO",
        "ManagingDirector": "out",
        "Lead": "poi",
        "Manager": "",
        "id":"43",
        "Designation":"COO"
    },
    {
        "ServiceArea": "4500-CIO",
        "ManagingDirector": "yhh",
        "Lead": "trr",
        "Manager": "nbb",
        "id":"403",
        "Designation":"CTO"
    }
];

// 过滤逻辑:保留所有属性值都不为null或空字符串的对象
const filteredArray = originalArray.filter(obj => 
  Object.values(obj).every(val => val !== null && val !== '')
);

console.log(filteredArray);

输出结果

执行后会得到原数组中所有属性均有效值的对象,也就是第一条和第四条记录:

[
  {
    "ServiceArea": "NON-CIO",
    "ManagingDirector": "qwe",
    "Lead": "abc",
    "Manager": "xyz",
    "id": "1",
    "Designation": "COO"
  },
  {
    "ServiceArea": "4500-CIO",
    "ManagingDirector": "yhh",
    "Lead": "trr",
    "Manager": "nbb",
    "id": "403",
    "Designation": "CTO"
  }
]

逻辑说明

  • filter:遍历原数组,筛选出符合条件的元素
  • Object.values(obj):提取当前对象的所有属性值,转为数组
  • every:检查数组中每一个值,只有当所有值都不是null或空字符串时,才返回true,对应的对象会被保留

注:你提到的理想输出包含第二条记录,但该记录的Lead属性为空字符串,按照需求应该被过滤掉,推测是描述失误,实际符合要求的是第一条和第四条记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:15:39