首页 > 解决方案 > 如何在节点js中获取嵌套数据

问题描述

我想在节点 js 中获取每个类别的项目。如何得到它。这是我想要的例子

    "status": true,
    "total_results": 4,
    "categories": [
        {
            "id": 2,
            "name": "Category 1",
            "items":[
                 {
                    "name" :"item1"
                 },
                 {
                    "name": "item2"
                 }
             ]
        },
        {
            "id": 4,
            "name": "Category 2",
             "items":[
                 {
                    "name" :"item1"
                 },
                 {
                    "name": "item2"
                 }
             ]
        }
    ]
}

标签: node.jsarraysnested

解决方案


根据我的理解分享我的建议;请参考以下代码片段:

const data={    "status": true,
    "total_results": 4,
    "categories": [
        {
            "id": 2,
            "name": "Category 1",
            "items":[
                 {
                    "name" :"item1"
                 },
                 {
                    "name": "item2"
                 }
             ]
        },
        {
            "id": 4,
            "name": "Category 2",
             "items":[
                 {
                    "name" :"item1"
                 },
                 {
                    "name": "item2"
                 }
             ]
        }
    ]
};

const expectedResult=data.categories.reduce((iter, item)=>{

  iter[item.name]=item.items? item.items.length : 0; // we can use item.id if required
  return iter;

}, {});

alert(JSON.stringify(expectedResult));
console.log('Items per category - ',expectedResult);


推荐阅读