如何从JSON添加和删除值

时间:2020-09-02 09:18:21

标签: javascript arrays json

我有以下JSON,

[
   {
      "Id":163,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50031"
   },
   {
      "Id":161,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50029"
   },
   {
      "Id":160,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50028"
   },
   {
      "Id":159,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50027"
   }
]

如果我通过163,则需要从JSON中删除该节点,我的预期输出是

[
   {
      "Id":161,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50029"
   },
   {
      "Id":160,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50028"
   },
   {
      "Id":159,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50027"
   }
]

如果我通过以下操作,则需要将项目插入JSON

   {
      "Id":164,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service8000"
   }

我需要关注JSOn输出,

[
   {
      "Id":164,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service8000"
   },
   {
      "Id":163,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50031"
   },
   {
      "Id":161,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50029"
   },
   {
      "Id":160,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50028"
   },
   {
      "Id":159,
      "CategoryId":"8",
      "ServiceTypeId":"2",
      "ServiceName":"Service50027"
   }
]

我该怎么做?

1 个答案:

答案 0 :(得分:1)

const data = [
  {Id:163,CategoryId:"8",ServiceTypeId:"2",ServiceName:"Service50031"},
  {Id:161,CategoryId:"8",ServiceTypeId:"2",ServiceName:"Service50029"},
  {Id:160,CategoryId:"8",ServiceTypeId:"2",ServiceName:"Service50028"},
  {Id:159,CategoryId:"8",ServiceTypeId:"2",ServiceName:"Service50027"}
];

const removeRecordById = (arr, Id) => {
  const i = arr.findIndex(a => a.Id == Id);
  if (i > -1) arr.splice(i, 1);
};


removeRecordById(data, 163);
console.log(data);