Javascript 来自平面json的分层json数据

Javascript 来自平面json的分层json数据,javascript,json,Javascript,Json,我有父子JSON数据,我希望以如下所示的特定年份数据格式从选定的父级中获取所有嵌套的子级 var data = [{ "Id": "1", "Name": "abc", "EnteredOn": "03/01/2019", "attr": "abc" }, { "Id": "2", "Name": "abcd", "EnteredOn": "02/01/2018", "attr": "abc" }, { "Id": "3", "Name": "abcd

我有父子JSON数据,我希望以如下所示的特定年份数据格式从选定的父级中获取所有嵌套的子级

var data = [{ "Id": "1", "Name": "abc", "EnteredOn": "03/01/2019", "attr": "abc" },
           { "Id": "2", "Name": "abcd", "EnteredOn": "02/01/2018", "attr": "abc" },
           { "Id": "3", "Name": "abcde", "EnteredOn": "04/01/2019", "attr": "abc" },
           { "Id": "4", "Name": "abcdef", "EnteredOn": "01/01/2016", "attr": "abc" }];
输出:

{
  "year": "2019",
  "children": [
    {
      "ID": "1",
      "Name": "abc",
      "Date": "03/01/2019"
    }
  ]
}
首先,我建议添加year属性

data.forEach(a=> a['year'] = a.EnteredOn.getFullYear()
并使用Lodash u0.groupBy函数


请添加您的尝试。我已尝试使用d3.nest和linq.js获得所需的,并且能够获得。非常感谢您提供宝贵的解决方案。在d3.nest和linq.js及其子节点的帮助下,我能够获得可用年份的输出,但如果我没有JSON中的[20122011]等特定年份数据,那么如何显示父年份,如2012年,子{[]}以这样的格式。我创建了这个JSFIDLE,但我的解决方案不起作用?您的解决方案没有任何问题,它绝对工作正常,但需要以我在FIDLE中提到的不同方式输出。谢谢你的帮助。@Koder太好了!所以你可以标记答案
 data.groupBy("year")