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

如何从对象数组中提取指定空属性(role/group/subgroup)及对应ID?

问题描述

给定如下对象数组:

let tempdata = [
        {
            "id": 41,
            "tool": "Artifactory",
            "role": "",
            "group": "Dish",
            "subgroup": "Ehub test 009",
            "subscriptionId": "artifactory-ehub-test-009"
        },
        {
            "id": 4,
            "tool": "Gitlab",
            "role": "Owner",
            "group": "IDP",
            "subgroup": "IDP-Service-Templates",
            "subscriptionId": "gitlab-51663585"
        }
    ]

需求:筛选出role、group、subgroup任一属性为空的项,同时返回该项的id以及所有为空的属性名称列表,期望输出格式为:

[{"id":41,"blank_properties":["role"]}]

现有代码仅能获取符合条件的id数组[41],无法满足完整需求:

tempdata.filter(item=>item.group=='' || item.subgroup=='' || item.role=='').map(item=>item.id)
解决方案

可以通过以下代码实现需求:

const tempdata = [
        {
            "id": 41,
            "tool": "Artifactory",
            "role": "",
            "group": "Dish",
            "subgroup": "Ehub test 009",
            "subscriptionId": "artifactory-ehub-test-009"
        },
        {
            "id": 4,
            "tool": "Gitlab",
            "role": "Owner",
            "group": "IDP",
            "subgroup": "IDP-Service-Templates",
            "subscriptionId": "gitlab-51663585"
        }
    ];

// 定义需要检查的目标属性集合
const targetProperties = ['role', 'group', 'subgroup'];

const result = tempdata
  // 筛选出至少有一个目标属性为空的项
  .filter(item => targetProperties.some(prop => item[prop] === ''))
  // 构造包含id和空属性列表的对象
  .map(item => {
    // 收集当前项中所有为空的目标属性名称
    const blankProps = targetProperties.filter(prop => item[prop] === '');
    return { id: item.id, blank_properties: blankProps };
  });

console.log(result);

逻辑说明

  1. 定义目标属性集合:将需要检查的role、group、subgroup存入数组,便于后续统一处理,也方便后续修改检查的属性。
  2. 筛选符合条件的项:使用Array.some()判断当前项是否存在目标属性为空的情况,筛选出符合要求的条目。
  3. 构造结果结构:对每个筛选出的条目,使用Array.filter()收集所有为空的目标属性名称,再组合成包含id和blank_properties的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:24:17