programing

JSON 개체에서 요소 제거

iphone6s 2023. 3. 13. 20:14
반응형

JSON 개체에서 요소 제거

다음과 같은 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 }

문서:

JSFiddle

function deleteEmpty(obj){
        for(var k in obj)
         if(k == "children"){
             if(obj[k]){
                     deleteEmpty(obj[k]);
             }else{
                   delete obj.children;
              } 
         }
    }

for(var i=0; i< a.children.length; i++){
 deleteEmpty(a.children[i])
}

언급URL : https://stackoverflow.com/questions/15451290/remove-element-from-json-object

반응형