删除多维数组上的空数组值

时间:2019-04-11 14:49:26

标签: arrays angular typescript

当数组中的数组cctype,cctypologycode和数量为空时,我想删除它们。最好的方法吗?

{
  "ccInput": [
    {
      "designSummaryId": 6,
      "CCType": "A",
      "CCTypologyCode": "A",
      "Amount": "1"
    },
    {
      "designSummaryId": 7,
      "CCType": "",
      "CCTypologyCode": "",
      "Amount": ""
    },
  ]
}

ccInput[1]应该从数组中删除

2 个答案:

答案 0 :(得分:2)

如果要从阵列中删除某些对象,请使用Array.prototytpe.filter()

您可以通过不可变的方式来做到这一点,方法是使用传播运算符复制对象的每个属性,然后过滤ccInput属性:

const obj = {ccInput:[{designSummaryId:6,CCType:"A",CCTypologyCode:"A",Amount:"1"},{designSummaryId:7,CCType:"",CCTypologyCode:"",Amount:""}]};

const result = { ...obj, ccInput: obj.ccInput.filter(x => x.CCType && x.CCTypologyCode) };

console.log(result);

或者,如果您想就地修改对象,只需重新分配ccInput属性:

const obj = {ccInput:[{designSummaryId:6,CCType:"A",CCTypologyCode:"A",Amount:"1"},{designSummaryId:7,CCType:"",CCTypologyCode:"",Amount:""}]};

obj.ccInput = obj.ccInput.filter(x => x.CCType && x.CCTypologyCode);

console.log(obj);

答案 1 :(得分:0)

我对TypeScript不太了解,但是我知道您可以将数组设置为[]。但是,对于那些只希望删除数组的 part 而又不是数组的 all 的人,这样做的最简单方法是 / em>只是将每个值分别设置为0(数字),''(字符),""(字符串),等等。