首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >underscore.js嵌套json

underscore.js嵌套json
EN

Stack Overflow用户
提问于 2018-09-24 05:45:25
回答 1查看 127关注 0票数 1

我找到了这些相关的职位,但无法解决我的问题。

Underscore, Nested Group By and Generate a JSON

Grouping a nested array with underscore.js

我想分组如下:

比如StartDate ->FunctionID-> STartTime

这是我的查询结果

json的结果如下:

代码语言:javascript
复制
[{"Act_Qty":0,"FunctionID":268,"ResDesc":"Anniversary Party","StartTime_EndTime":"04:00:00 AM - 04:30:00 AM"},
[{"Act_Qty":0,"FunctionID":268,"ResDesc":"Anniversary Party","StartTime_EndTime":"04:00:00 AM - 04:30:00 AM"}]

对于嵌套的json分组,我尝试了以下不同的查询:

代码语言:javascript
复制
var result = _.chain(jsonData)
.groupBy('StartDate')
.mapObject( StartDate => _.groupBy(StartDate, 'FunctionID'))
.value();


var result = _.chain(jsonData)
.groupBy('FunctionID')
.mapObject( FunctionID => _.groupBy(FunctionID,'StartDate' ))
.value();

但这给我的结果就像

喜欢内部组中的相同函数,但我希望内部组中有不同的函数。

请建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 06:33:49

这是如何嵌套组数据的方法。

代码语言:javascript
复制
data = [{
  "StartDate": "2018-09-11",
  "FunctionID": "276",
  "StartTime_EndTime": "08:00:00 AM - 11:00:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "19",
  "Item": "Tea Sandwitches and Salads"
}, {
  "StartDate": "2018-09-11",
  "FunctionID": "276",
  "StartTime_EndTime": "08:00:00 AM - 11:00:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "18",
  "Item": "Pasta Station"
}, {
  "StartDate": "2018-09-12",
  "FunctionID": "295",
  "StartTime_EndTime": "07:00:00 AM - 07:30:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "1",
  "Item": "Tea Sandwitches and Salads"
}, {
  "StartDate": "2018-09-12",
  "FunctionID": "295",
  "StartTime_EndTime": "07:00:00 AM - 07:30:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "26",
  "Expr": "18",
  "Act_Qty": "19",
  "Charge": "9",
  "Item": "Coffee"
}, {
  "StartDate": "2018-09-13",
  "FunctionID": "298",
  "StartTime_EndTime": "09:00:00 AM - 11:00:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "19",
  "Item": "Tea Sandwitches and Salads"
}, {
  "StartDate": "2018-09-13",
  "FunctionID": "298",
  "StartTime_EndTime": "07:00:00 AM - 11:00:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "18",
  "Item": "Pasta Station"
}, {
  "StartDate": "2018-09-15",
  "FunctionID": "299",
  "StartTime_EndTime": "06:00:00 AM - 07:30:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "13",
  "Expr": "12",
  "Act_Qty": "13",
  "Charge": "1",
  "Item": "Tea Sandwitches and Salads"
}, {
  "StartDate": "2018-09-16",
  "FunctionID": "299",
  "StartTime_EndTime": "06:30:00 AM - 07:30:00 AM",
  "ResDesc": "Breakfast",
  "functionRoom": "Living Room",
  "Gurenteed": "26",
  "Expr": "18",
  "Act_Qty": "19",
  "Charge": "9",
  "Item": "Coffee"
}];

var byStartDate = _.groupBy(data, 'StartDate');
_.each(byStartDate, (d, i) => {
  byStartDate[i] = _.groupBy(d, 'FunctionID');
  _.each(byStartDate[i], (d1, i1) => {
    byStartDate[i][i1] = _.groupBy(d1, d2 => {
      return d2["StartTime_EndTime"].split("-")[0].trim();
    });
  });
});

console.log(byStartDate);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>

如果有任何担心的话请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52473294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档