如何删除嵌套数组中存在其name属性未定义的JSON对象

时间:2018-08-19 18:56:29

标签: javascript jquery json

从下面的JSON中,我得到了areaQuotas数组,其中一些名称属性不存在。

[
  {
    "forums": "",
    "resource": {
      "dhjName": "myvhp",
      "dhj": {
        "areaProgramValue": "123",
        "areaQuotas": [
          {
            "areaQuotaValue": "1234",
            "name": "acc"
          },
          {
            "areaQuotaValue": "12345",
            "name": "pro"
          }
        ],
        "methodType": "DGH",

      }
    },
    "task": "create"
  },
  {
    "forums": "",
    "resource": {
      "dhjName": "myvhp",
      "dhj": {
        "areaProgramValue": "123",
        "areaQuotas": [
          {
            "areaQuotaValue": "1234",
            "name": "acc"
          },
          {
            "areaQuotaValue": "12345",
            "name": "pro"
          },
          {
            "areaQuotaValue": "5666"
          },
          {
            "areaQuotaValue": "7666"
          }
        ],
        "methodType": "DGH",

      }
    },
    "task": "create"
  },

]

从下面的JSON中,我得到了 areaQuotas 数组,对于其中的一些 name 属性不存在。

如何删除对areaQuotas数组其name属性未定义的所有对象

我尝试如下所示

test = test.filter((obj) =>  typeof obj.resource.dhj.areaQuotas.name === 'undefined');

这是我的小提琴

https://jsfiddle.net/o2gxgz9r/65225/

1 个答案:

答案 0 :(得分:3)

您可以将forEachfilter一起使用。

test.forEach(item => {
  item.resource.dhj.areaQuotas = item.resource.dhj.areaQuotas.filter(
    areaQuota => {
      return areaQuota.hasOwnProperty('name');
    }
  );
});

这是更新的小提琴:https://jsfiddle.net/o2gxgz9r/65246/