首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除嵌套JavaScript对象

删除嵌套JavaScript对象
EN

Stack Overflow用户
提问于 2018-06-27 15:37:36
回答 2查看 1.6K关注 0票数 0

我一直试图从JavaScript对象中删除嵌套对象,但没有成功,也无法通过搜索前面的帖子找到正确的答案。

这就是我一直在努力做的事情。

代码语言:javascript
复制
<code id='code'></code>

var myobj = {
  "children": [
    {
      "name": "albuterol ",
      "children": [
        {
          "name": "albuterol  - fluticasone ",
          "children": [
            {
              "name": "prednisone ",
              "children": [
                {
                  "name": "dexamethasone ",
                  "children": [],
                  "size": 1,
                  "colname": "CONCEPT_NAME.4"
                }
              ],
              "size": 3,
              "colname": "CONCEPT_NAME.3"
            }
          ],
          "size": 4,
          "colname": "CONCEPT_NAME.2"
        }]}]} 

function deleteObject(myobj) {
    var x = delete myobj.colname
    return (myobj.name, myobj.children)
}

document.getElementById('code').innerText = JSON.stringify(deleteObject(myobj))

我想删除对象colname。我是遗漏了什么,还是代码完全错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-27 15:49:21

您需要一个递归函数来删除该属性。

代码语言:javascript
复制
var myobj = {
  "children": [
    {
      "name": "albuterol ",
      "children": [
        {
          "name": "albuterol  - fluticasone ",
          "children": [
            {
              "name": "prednisone ",
              "children": [
                {
                  "name": "dexamethasone ",
                  "children": [],
                  "size": 1,
                  "colname": "CONCEPT_NAME.4"
                }
              ],
              "size": 3,
              "colname": "CONCEPT_NAME.3"
            }
          ],
          "size": 4,
          "colname": "CONCEPT_NAME.2"
        }]}]} 

function deleteColnameRecursive(obj){
  delete obj.colname
  if(obj.children){
     for(var i=0;i<obj.children.length;i++)
         deleteColnameRecursive(obj.children[i]);
  }
}

deleteColnameRecursive(myobj);

console.log(myobj);

票数 4
EN

Stack Overflow用户

发布于 2018-06-27 15:42:04

MyObj不直接具有colname属性。MyObj有一个名为Children的数组。

若要删除正确的属性,请选择适当的对象。例如,myObj.children[0].colname

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51066668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档