Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用lodash显示嵌套json的所有值_Javascript_Json_Ecmascript 6_Foreach_Mapping - Fatal编程技术网

Javascript 使用lodash显示嵌套json的所有值

Javascript 使用lodash显示嵌套json的所有值,javascript,json,ecmascript-6,foreach,mapping,Javascript,Json,Ecmascript 6,Foreach,Mapping,我试图用lodash显示JSON的所有值,我读到它最适合这样的情况,JSON很深,你可以看到,有些类别是空的,这让我更具挑战性,我想知道哪个函数最适合显示这种非结构化和深JSON。是foreach还是filter?洛达斯是这里最好的选择吗?数据最终将显示在react应用程序中,但目前我正在尝试进行映射/foreach/filter或任何可以动态遍历所有项目的操作 预期输出为嵌套树中的列表项 { "name": "Menu", "children": [ { "typ

我试图用lodash显示JSON的所有值,我读到它最适合这样的情况,JSON很深,你可以看到,有些类别是空的,这让我更具挑战性,我想知道哪个函数最适合显示这种非结构化和深JSON。是foreach还是filter?洛达斯是这里最好的选择吗?数据最终将显示在react应用程序中,但目前我正在尝试进行映射/foreach/filter或任何可以动态遍历所有项目的操作

预期输出为嵌套树中的列表项<李>

{

  "name": "Menu",
  "children": [
    {
      "type": "category",
      "name": "Burgers",
      "children": [
        {
          "type": "item",
          "name": "Burger 1",
          "children": [
            {
              "type": "modifier",
              "name": "Promo",
              "children": [
                {
                  "type": "item",
                  "name": "Promo 1"
                }
              ]
            },
            {
              "type": "group",
              "name": "Drinks",
              "children": [
                {
                  "type": "item",
                  "name": "Coke"
                },
                {
                  "type": "item",
                  "name": "Light Coke"
                },
                {
                  "type": "item",
                  "name": "Sprite"
                },
                {
                  "type": "item",
                  "name": "Fanta"
                }
              ]
            },
            {
              "type": "modifier",
              "name": "Without",
              "children": [
                {
                  "type": "ingredient",
                  "name": "Onion"
                },
                {
                  "type": "ingredient",
                  "name": "Tomato"
                },
                {
                  "type": "ingredient",
                  "name": "Pickles"
                }
              ]
            }
          ]
        },
        {
          "type": "item",
          "name": "Burger 2",
          "children": [
            {
              "type": "modifier",
              "name": "Promo",
              "children": [
                {
                  "type": "item",
                  "name": "Promo 1"
                }
              ]
            },
            {
              "type": "group",
              "name": "Drinks",
              "children": [
                {
                  "type": "item",
                  "name": "Coke"
                },
                {
                  "type": "item",
                  "name": "Light Coke"
                },
                {
                  "type": "item",
                  "name": "Sprite"
                },
                {
                  "type": "item",
                  "name": "Fanta"
                }
              ]
            },
            {
              "type": "modifier",
              "name": "Without",
              "children": [
                {
                  "type": "ingredient",
                  "name": "Onion"
                },
                {
                  "type": "ingredient",
                  "name": "Tomato"
                },
                {
                  "type": "ingredient",
                  "name": "Pickles"
                }
              ]
            }
          ]
        },
        {
          "type": "item",
          "name": "Coming Soon Offers"
        }
      ]
    },
    {
      "type": "category",
      "name": "Pizzas",
      "children": [
        {
          "type": "item",
          "name": "Pizza 1",
          "children": [
            {
              "type": "modifier",
              "name": "Promo",
              "children": [
                {
                  "type": "item",
                  "name": "Promo 1"
                }
              ]
            },
            {
              "type": "group",
              "name": "Drinks",
              "children": [
                {
                  "type": "item",
                  "name": "Coke"
                },
                {
                  "type": "item",
                  "name": "Light Coke"
                },
                {
                  "type": "item",
                  "name": "Sprite"
                },
                {
                  "type": "item",
                  "name": "Fanta"
                }
              ]
            },
            {
              "type": "modifier",
              "name": "Without",
              "children": [
                {
                  "type": "ingredient",
                  "name": "Onion"
                },
                {
                  "type": "ingredient",
                  "name": "Mashrooms"
                },
                {
                  "type": "ingredient",
                  "name": "Olives"
                }
              ]
            }
          ]
        },
        {
          "type": "item",
          "name": "Pizza 2",
          "children": [
            {
              "type": "modifier",
              "name": "Promo",
              "children": [
                {
                  "type": "item",
                  "name": "Promo 1"
                }
              ]
            },
            {
              "type": "group",
              "name": "Drinks",
              "children": [
                {
                  "type": "item",
                  "name": "Coke"
                },
                {
                  "type": "item",
                  "name": "Light Coke"
                },
                {
                  "type": "item",
                  "name": "Sprite"
                },
                {
                  "type": "item",
                  "name": "Fanta"
                }
              ]
            },
            {
              "type": "modifier",
              "name": "Without",
              "children": [
                {
                  "type": "ingredient",
                  "name": "Onion"
                },
                {
                  "type": "ingredient",
                  "name": "Mashrooms"
                },
                {
                  "type": "ingredient",
                  "name": "Olives"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

这是一条没有洛达斯的路

const buildMenu=(数据)=>{
设ul=document.createElement('ul');
data.children.forEach(i=>{
设li=document.createElement('li');
li.innerText=i.name;
li.className=i.type;
if(i.children)li.appendChild(buildMenu(i));
ul.儿童(li);
});
返回ul;
};
让数据={
“名称”:“菜单”,
“儿童”:[{
“类型”:“类别”,
“名称”:“汉堡”,
“儿童”:[{
“类型”:“项目”,
“名称”:“汉堡1”,
“儿童”:[{
“类型”:“修饰符”,
“名称”:“宣传片”,
“儿童”:[{
“类型”:“项目”,
“名称”:“促销1”
}]
},
{
“类型”:“组”,
“姓名”:“饮料”,
“儿童”:[{
“类型”:“项目”,
“名称”:“可口可乐”
},
{
“类型”:“项目”,
“名称”:“轻焦”
},
{
“类型”:“项目”,
“名称”:“精灵”
},
{
“类型”:“项目”,
“名称”:“芬达”
}
]
},
{
“类型”:“修饰符”,
“名称”:“无”,
“儿童”:[{
“类型”:“成分”,
“名称”:“洋葱”
},
{
“类型”:“成分”,
“名称”:“西红柿”
},
{
“类型”:“成分”,
“名称”:“泡菜”
}
]
}
]
},
{
“类型”:“项目”,
“名称”:“汉堡2”,
“儿童”:[{
“类型”:“修饰符”,
“名称”:“宣传片”,
“儿童”:[{
“类型”:“项目”,
“名称”:“促销1”
}]
},
{
“类型”:“组”,
“姓名”:“饮料”,
“儿童”:[{
“类型”:“项目”,
“名称”:“可口可乐”
},
{
“类型”:“项目”,
“名称”:“轻焦”
},
{
“类型”:“项目”,
“名称”:“精灵”
},
{
“类型”:“项目”,
“名称”:“芬达”
}
]
},
{
“类型”:“修饰符”,
“名称”:“无”,
“儿童”:[{
“类型”:“成分”,
“名称”:“洋葱”
},
{
“类型”:“成分”,
“名称”:“西红柿”
},
{
“类型”:“成分”,
“名称”:“泡菜”
}
]
}
]
},
{
“类型”:“项目”,
“名称”:“即将推出的优惠”
}
]
},
{
“类型”:“类别”,
“名称”:“比萨”,
“儿童”:[{
“类型”:“项目”,
“名称”:“披萨1”,
“儿童”:[{
“类型”:“修饰符”,
“名称”:“宣传片”,
“儿童”:[{
“类型”:“项目”,
“名称”:“促销1”
}]
},
{
“类型”:“组”,
“姓名”:“饮料”,
“儿童”:[{
“类型”:“项目”,
“名称”:“可口可乐”
},
{
“类型”:“项目”,
“名称”:“轻焦”
},
{
“类型”:“项目”,
“名称”:“精灵”
},
{
“类型”:“项目”,
“名称”:“芬达”
}
]
},
{
“类型”:“修饰符”,
“名称”:“无”,
“儿童”:[{
“类型”:“成分”,
“名称”:“洋葱”
},
{
“类型”:“成分”,
“名称”:“Mashrooms”
},
{
“类型”:“成分”,
“名称”:“橄榄”
}
]
}
]
},
{
“类型”:“项目”,
“名称”:“披萨2”,
“儿童”:[{
“类型”:“修饰符”,
“名称”:“宣传片”,
“儿童”:[{
“类型”:“项目”,
“名称”:“促销1”
}]
},
{
“类型”:“组”,
“姓名”:“饮料”,
“儿童”:[{
“类型”:“项目”,
“名称”:“可口可乐”
},
{
“类型”:“项目”,
“名称”:“轻焦”
},
{
“类型”:“项目”,
“名称”:“精灵”
},
{
“类型”:“项目”,
“名称”:“芬达”