从数组中删除空的孩子

时间:2019-05-24 09:41:02

标签: angular

JSON 0 标题:“系统设置” id:“系统设置” 孩子们 0 1个 孩子们 0 2 孩子们 0 1个 标题:“ Menu Master1” 2 标题:“ MenuMaster 2” 3 标题:“ MenuMaster 3” 标题:“设置”

预期结果- JSON格式 0 标题:“系统设置” id:“系统设置”

儿童 0 1个 标题:“ Menu Master1” 2 标题:“ MenuMaster 2” 3 标题:“ MenuMaster 3” 标题:“设置”

2 个答案:

答案 0 :(得分:0)

function deleteEmptyChildren(node) {
    // assumes node is not empty
    if (Array.isArray(node.children)) {
        node.children = node.children.filter(
            function(child) {
                if (isEmpty(child)) {
                    return false;
                } else {
                    deleteEmptyChildren(child);
                    return true;
                }
            }
        );
    }
}

答案 1 :(得分:0)

您可以执行以下操作,=>到现在为止在控制台中记录结果

function removeEmpties() {
    var data = [
      {
         title: "System Setting",
         id: "System Setting",
         children: [
           {
           },
           {
             title : "Menu Master1"
           }
         ]
      },
      {}
    ];

    var result = [];
    data.map(function(f) {
        if (f && f.hasOwnProperty('title')) { // add constraint
            if (f && f.children && f.children.length > 0) // add constraint
            {
                 f.children = f.children.filter(function(c) { // add constraint
                    return c && c.hasOwnProperty('title');
                 });
            }
            result.push(f);
        }
    });
    console.log(result); 
}