当前位置: 首页 > 面试题库 >

从JSON对象中删除元素

韦智刚
2023-03-14
问题内容

我有一个看起来像这样的json数组:

  {
    "id": 1,
    "children": [
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    },
    {
        "id": 2,
        "children": {
            "id": 3,
            "children": {
                "id": 4,
                "children": ""
            }
        }
    }]
}

我想有一个函数来删除“孩子”为空的元素。我该怎么做?我不是要答案,只是建议


问题答案:

要遍历对象的键,请使用for .. in循环:

for (var key in json_obj) {
    if (json_obj.hasOwnProperty(key)) {
        // do something with `key'
    }
}

要测试空元素的所有元素,可以使用递归方法:遍历所有元素,然后也递归地测试它们的孩子。

可以使用delete关键字删除对象的属性:

var someObj = {
    "one": 123,
    "two": 345
};
var key = "one";
delete someObj[key];
console.log(someObj); // prints { "two": 345 }

说明文件:

  • https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Working_with_Objects
  • https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Statements/for...in
  • https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Operators/delete


 类似资料:
  • 问题内容: 我试图遍历对象列表,从每个对象中删除一个元素。每个对象都是换行符。我试图然后按原样保存新文件,而对象中不包含任何元素。我知道这可能是一个简单的任务,但似乎无法完成这项工作。如果有人可以伸出援手,将不胜感激。谢谢。 } 我需要删除小时元素中包含的信息,但是信息并不总是相同的。有些包含全天,有些仅包含一两天的信息。我尝试使用的代码是Pyton,我整天都在搜索该代码以解决问题。我对Pytho

  • 问题内容: 我正在通过jQuery ajax将JSON发送到Node服务器。我的jQuery ajax正在运行。见下文。 我的问题是,当我控制台日志用户(一个已字符串化的json对象)时,我在丢失的数组中有信息。我丢失的对象部分看起来像这样。 它在控制台中显示为字符串形式,如下所示: 不会存储在父用户对象内部的那些数组中存储的信息。关于为什么会这样的任何建议都会有所帮助。如果您有其他方法可用于通过

  • 使用JavaVersion9,我有一些测试代码可以从通过向DefaultListModel传递一个refrence创建的列表中删除一个项目。这就是我所做的。 > 创建DefaultListModel对象 通过调用addelement将8个元素添加到它(A..H)中 通过调用RemoveElement删除项 创建一个Jlist,将我的DefaultListModel的引用传递给它 列表框显示所有8个

  • 问题内容: 我有一个JSON: 我试图删除所有以 “ umb_” 开头的属性。这在json.net中可能吗? 输出将是这样的: 使用删除我能够做到,但是不能一次全部完成。 有什么建议吗? 问题答案: 您可以先解析字符串: 更新 或: 更新#2 您可以在子句中指定更多条件: 要么 或任何您需要的。

  • 问题内容: 我有一个看起来像这样的数组: 而且我需要删除重复项,以便保留类似以下内容: 我尝试安装underscore.js并使用._uniq,但这似乎仅在对象中出现一对时才起作用。我似乎无法使它跨多个键工作。 当我尝试类似的东西: 我只得到前三个唯一值(每个年级一个)。但是我需要所有年级和领域的唯一值。是否有一种简单的方法将两个键都馈给_.uniq函数? 最终,我需要一个列表,其中每个唯一的等级

  • 问题内容: 我有一个具有静态对象ArrayList的ClassA 现在,我要像这样从此列表中删除一个对象 这是用Meteorit类编写的。但是,当我想使用ArrayList中的对象时,它将引发异常。 我使用Iterator从ArrayList中删除对象,但是现在我不知道如何在这种情况下使用它。 问题答案: 这是因为某个线程实际上正在for每个循环中查看此列表,也许您正在尝试在for-each主体中