Remove element from JSON Object

javascript, jquery, json

Solution

To iterate through the keys of an object, use a `for .. in` loop:

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

To test all elements for empty children, you can use a recursive approach: iterate through all elements and recursively test their children too.

Removing a property of an object can be done by using the `delete` keyword:

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

Documentation:

- https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects

- https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for...in

- https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/delete

Problem

I have a json array which looks something like this: ``` { "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": "" } } }] } ``` I would like to have a function which removes the elements which has the "children" empty. How can I do it? I am not asking for the answer, only suggestions

Original source