首页 > 解决方案 > 通过其键值从嵌套 JSON 中查找和删除对象

问题描述

我想删除嵌套 JSON 中的对象。如下例所示,我的目标是从对象中删除数学。但我必须搜索“mat”键并将其删除。在我的实际情况中,subjects 属性中有 10 个对象。

 const obj = {
       "id":"1234",
       "name":"John Doe",
       "level":"elementary",
       "subjects":[
          {
             "key":"mat",
             "name":"maths",
             "teacher":"Mr Smith",
          },
          {
             "key":"eng",
             "name":"english",
             "teacher":"Mrs Smith",
          }
       ],
       "homeroom_teacher":"Mrs Brown"
    }

删除后我想要:

 const obj = {
       "id":"1234",
       "name":"John Doe",
       "level":"elementary",
       "subjects":[
          {
             "key":"eng",
             "name":"english",
             "teacher":"Mrs Smith",
          }
       ],
       "homeroom_teacher":"Mrs Brown"
    }

标签: javascripttypescript

解决方案


我会过滤

const obj = { "id":"1234", "name":"John Doe", "level":"elementary", 
  "subjects":[ 
    { "key":"mat", "name":"maths", "teacher":"Mr Smith", }, 
    { "key":"eng", "name":"english", "teacher":"Mrs Smith", } 
  ], "homeroom_teacher":"Mrs Brown" };
 
const keep = ["eng"]; // assuming more could be present

obj.subjects = obj.subjects.filter(({key}) => keep.includes(key))

console.log(obj)


推荐阅读