如何从嵌套数组中删除对象?

时间:2020-07-22 10:41:22

标签: javascript

我有这种json。

let arr1 = [
    {
        "packageReference": "1234",
        "displayName": "Business",
        "description": "Includes...",
        "promotion": {
          "packageReference": "1234",
          "displayName": "$100 Standard",
          "optionGroup": [
            {
              "displayName": "Access",
            },
            {
              "displayName": "Contract"
            },
            {
              "displayName": "Equipment"
            },
            {
              "displayName": "Features"
            },
            {
              "displayName": "Fees",
            }
          ]
        }
      }
]

我只需要删除显示名称为“ Fees”的arr1 [0] .promotion.optionGroup中的对象,并返回没有他的新对象。

2 个答案:

答案 0 :(得分:2)

您可以这样过滤子数组来做到这一点:

let arr1 = [
    {
        "packageReference": "1234",
        "displayName": "Business",
        "description": "Includes...",
        "promotion": {
          "packageReference": "1234",
          "displayName": "$100 Standard",
          "optionGroup": [
            {
              "displayName": "Access",
            },
            {
              "displayName": "Contract"
            },
            {
              "displayName": "Equipment"
            },
            {
              "displayName": "Features"
            },
            {
              "displayName": "Fees",
            }
          ]
        }
      }
];

arr1 = arr1.map(e => {
  e['promotion']['optionGroup'] = 
       e['promotion']['optionGroup'].filter(s => s['displayName'] != 'Fees');
  return e;
});


console.log(arr1);

答案 1 :(得分:1)

// Get new array without the Fees one
const newGroup = arr1[0].promotion.optionGroup.filter(group => group.displayName !== 'Fees');

// Put new group into the object
arr1[0].promotion.optionGroup = newGroup;

也可以在不创建变量的情况下执行此操作,但是为了简洁起见添加了它。