为了账号安全,请及时绑定邮箱和手机立即绑定

在嵌套数组中查找空数组并在 Javascript 中删除它们

在嵌套数组中查找空数组并在 Javascript 中删除它们

守着星空守着你 2023-01-06 16:37:15
我有一个嵌套的分层对象数组,看起来像这样[{"id": 0,"name": "E00-E90 Stoffwechselstörungen","parentId": null,"children": [{    "id": 1,    "name": "E70-E90 Stoffwechselstörungen",    "parentId": 0,    "children": [{        "id": 2,        "name": "E70.- Störungen des Stoffwechsels aromatischer Aminosäuren",        "parentId": 1,        "children": []    }, {        "id": 3,        "name": "E71.- Störungen des Stoffwechsels verzweigter Aminosäuren und des Fettsäurestoffwechsels",        "parentId": 1,        "children": []    }, {        "id": 4,        "name": "E72.- Sonstige Störungen des Aminosäurestoffwechsels",        "parentId": 1,        "children": []    },    ...现在我想"children": []从最后一个孩子中删除空数组。我试过了,reduce但没有任何错误就无法工作。   var lastElementLength = list.length - 1   const findItemNested = (arr, itemId, nestingKey) => (        arr.reduce((a, item) => {          if (a) return a;          if (item.id === itemId) return item;          if (item[nestingKey]) return findItemNested(item[nestingKey], itemId, nestingKey)        }, null)    );    const resEmptyChildren = findItemNested(roots, lastElementLength, "children");        console.log('resEmptyChildren', resEmptyChildren)
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

您可以为此使用递归。


var tInput = [{

"id": 0,

"name": "E00-E90 Stoffwechselstörungen",

"parentId": null,

"children": [{

    "id": 1,

    "name": "E70-E90 Stoffwechselstörungen",

    "parentId": 0,

    "children": [{

        "id": 2,

        "name": "E70.- Störungen des Stoffwechsels aromatischer Aminosäuren",

        "parentId": 1,

        "children": []

    }, {

        "id": 3,

        "name": "E71.- Störungen des Stoffwechsels verzweigter Aminosäuren und des Fettsäurestoffwechsels",

        "parentId": 1,

        "children": []

    }, {

        "id": 4,

        "name": "E72.- Sonstige Störungen des Aminosäurestoffwechsels",

        "parentId": 1,

        "children": []

    }]

  }]

}];


(function removeEmptyChildrenProperties(input){

    console.log('Checking id:', input.id);

    if(input.hasOwnProperty('children')){

        if(input.children && input.children.length){

                input.children.forEach(removeEmptyChildrenProperties)

        }

        else{

            console.log('Remove children on id:', input.id);

            delete input.children

        }

    };

    

    return input

}).apply(null, tInput);


console.log(JSON.stringify(tInput));


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信