Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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 将子组中的名称排序为组-重新构造json数据_Javascript_D3.js_Lodash - Fatal编程技术网

Javascript 将子组中的名称排序为组-重新构造json数据

Javascript 将子组中的名称排序为组-重新构造json数据,javascript,d3.js,lodash,Javascript,D3.js,Lodash,我正在尝试重新构造JSON数据,将其传递给D3.js以创建树形图。下面的链接有虚拟数据。原始数据包括不同的水果/蔬菜名称和一些属性,如该水果的组(例如{name:apple,group1:tree-fruit}),但我想将水果名称分为子组,子组分为顶级组(例如,水果>tree-fruits>apple)。你会找到正确的结构,我试图在最后一行作为评论 目前我的问题是,组名重复了很多次,我无法找到一种方法来获取组3名称(可能还有4和5)一次,以便将其推送到新的数据结构中。您将在第145行找到逻辑错误

我正在尝试重新构造JSON数据,将其传递给D3.js以创建树形图。下面的链接有虚拟数据。原始数据包括不同的水果/蔬菜名称和一些属性,如该水果的组(例如
{name:apple,group1:tree-fruit}
),但我想将水果名称分为子组,子组分为顶级组(例如,水果>tree-fruits>apple)。你会找到正确的结构,我试图在最后一行作为评论

目前我的问题是,组名重复了很多次,我无法找到一种方法来获取组3名称(可能还有4和5)一次,以便将其推送到新的数据结构中。您将在第145行找到逻辑错误,但我将复制我的日志,并尝试在本文中获取group3名称

该项目:

if(第3组){
var checkGroup3=函数(recentName){
对于(var j=0;j
原始数据:

var data = {
'name': 'Big Data',
'children': [
    {
        'name': 'Apple',
        'gruppe_1': 'Fruits',
        'gruppe_2': 'Red Fruits',
        'gruppe_3': 'Tree Fruits',
        'gruppe_4': 'Winter Favourite Fruits',
        'gruppe_5': 'Candy Fruits'
    },
    {
        'name': 'Pomegranate',
        'gruppe_1': 'Fruits',
        'gruppe_2': 'Red Fruits',
        'gruppe_3': 'Tree Fruits',
        'gruppe_4': 'Winter Favourite Fruits',
        'gruppe_5': 'Candy Fruits'
    },
    {
        'name': 'Pear',
        'gruppe_1': 'Fruits',
        'gruppe_2': 'Green Fruits',
        'gruppe_3': 'Medium Tree Fruits'
    },
    {
        'name': 'Strawberry',
        'gruppe_1': 'Nuts',
        'gruppe_2': 'Red Nuts',
        'gruppe_3': 'Awkward Nuts'
    },
    {
        'name': 'Hazelnuts',
        'gruppe_1': 'Nuts',
        'gruppe_2': 'Brown Nuts',
        'gruppe_3': 'Normal Nuts'
    },
    {
        'name': 'Cucumber',
        'gruppe_1': 'Vegetable',
        'gruppe_2': 'Green Vegetable',
        'gruppe_3': 'Long Vegetable'
    },
    {
        'name': 'Maracuya'
    },
    {
        'name': 'Green Kiwi',
        'gruppe_1': 'Fruits',
        'gruppe_2': 'Green Fruits'
    },
    {
        'name': 'Cherry',
        'gruppe_1': 'Fruits',
        'gruppe_2': 'Red Fruits',
        'gruppe_3': 'Tree Fruits'
    },
]
}

我试图得到的结构:

{
  "name":"Big Data",
  "children":[
    {
      "name":"Fruits",
      "children":[
        "Maracuya",
        {
          "name":"Red Fruits",
          "parent":"Fruits",
          "children":[
            {
              "name":"Tree Fruits",
              "children":[
                "Cherry",
                {
                  "name":"Winter Favourite Fruits",
                  "children":[
                    {
                      "name":"Candy Fruits",
                      "children":[
                        "Apple",
                        "Pomegranate"
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name":"Green Fruits",
          "children":[
            "Green Kiwi",
            {
              "name":"Medium Tree Fruits",
              "children":[
                "Pear"
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Vegetable",
      "children":[
        {
          "name":"Green Vegetable",
          "children":[
            {
              "name":"Long Vegetable",
              "children":[
                "Cucumber"
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Nuts",
      "children":[
        {
          "name":"Red Nuts",
          "children":[
            {
              "name":"Awkward Nuts",
              "children":[
                "Strawberry"
              ]
            }
          ]
        },
        {
          "name":"Brown Nuts",
          "children":[
            {
              "name":"Normal Nuts",
              "children":[
                "Hazelnuts"
              ]
            }
          ]
        }
      ]
    }
  ]
}
我是如何尝试重组数据的:

var materialData={
“名称”:“大数据”,
“儿童”:[]
};
var numberOfElements=data.children.length;
对于(var i=0;i
一种方法

您可以采用迭代方法,迭代嵌套组的键并搜索组。如果未找到,则生成一个包含子对象的新组,并继续操作,直到所有组都位于对象中

最后,在可能的后续对象前面,将name属性指定给一个新组

var data={name:“大数据”,子项:[{name:“苹果”,gruppe_1:“水果”,gruppe_2:“红色水果”,gruppe_3:“树果实”,gruppe_4:“冬季喜爱的水果”,gruppe_5:“糖果水果”},{name:“石榴”,gruppe_1:“水果”,gruppe_2:“红色水果”,gruppe_3:“树果实”,gruppe_4:“冬季喜爱的水果”,gruppe_5:“糖果水果”},{名称:“梨”,gruppe_1:“水果”,gruppe_2:“绿色水果”,gruppe_3:“中等树果实”},{名称:“草莓”,gruppe_1:“坚果”,gruppe_2:“红色坚果”,gruppe_3:“笨拙的坚果”},{名称:“榛子”,gruppe_1:“坚果”,gruppe_2:“棕色坚果”