Удаление пустых значений массива в многомерном массиве - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу удалить массивы cctype, cctypologycode и сумму, когда они пусты из массива. лучший способ сделать это?

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

ccInput[1] следует удалить из массива

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Если вы хотите удалить некоторые объекты из вашего массива, используйте 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);
0 голосов
/ 11 апреля 2019

Я не знаю много о TypeScript, но я знаю, что вы можете установить массив на [].Тем не менее, для тех из вас, кто хочет избавиться от части массива, но не от всех , самый простой способ сделать это из известных мне просто установить каждое значение на 0 для чисел, '' для символов, "" для строк и т. д.

...