【发布时间】:2014-06-16 01:53:27
【问题描述】:
我正在尝试弄清楚如何在多个级别进行分组:
给定以下输入 JSON:
[
{
"GroupingMajor": "Fruit",
"Grouping": "Banana",
"Description": "10 Bananas",
"Price": 20609.82,
},
{
"GroupingMajor": "Fruit",
"Grouping": "Apple",
"Description": "13 Apples",
"Price": 4567.98,
},
{
"GroupingMajor": "Dairy",
"Grouping": "Cheese",
"Description": "1 KG",
"Price": 76456.76,
}
]
我想创建以下类型的输出:
{
"name": "root",
"children": [
{
"name": "Fruit",
"children": [
{
{"name": "Apple", "price": 4567.98},
{"name": "Banana", "price": 20609.82}
}]
},
{
"name": "Dairy",
"children": [
{
{"name": "Cheese", "price": 76456.76}
}]
}]
}
即数据先按“GroupingMajor”分组,再按“Grouping”分组。 “Grouping”是父“GroupingMajor”类别的子项。如何使用 linq.js (JavaScript) 生成此输出?
这是我尝试过的一些 JavaScript:
var data = Enumerable.From(dataFood)
.GroupBy(
function (e) {
return {
groupmajor: e.GroupingMajor,
groupminor: e.Grouping
}},
function (e) {
return {
groupmajor: e.GroupingMajor,
groupminor: e.Grouping,
name: e.GroupingMajor,
price: e.Price,
}
},
function (key, g) {
return {
group: key.groupmajor,
groupminor: key.groupminor,
name: g.name,
price: g.price
}
})
.ToArray();
我没有得到正确的分组,也不知道如何生成子组。
任何帮助表示赞赏。
【问题讨论】:
标签: javascript linq group-by linq.js