0
我想在我的项目之一中使用Linq.Js。问题是,我必须应用分组,然后在某些列上使用总和并选择某些列的第一个。 例如分组并获取FirstOrDefault LINQ.js
var list = [
{ a: 2, b: 4, c: 1 },
{ a: 2, b: 3, c: 7 },
{ a: 2, b: 3, c: 3 },
{ a: 4, b: 7, c: 5 },
{ a: 7, b: 3, c: 2 },
{ a: 4, b: 1, c: 5 }];
结果将是 组上的B A,和采取的第一个C
a:2,b:10,c:1
a:7,b:3,c:2
a:4,b:1,c:5
的到现在我都试过了,
var aggregatedObject = Enumerable.From(claimForCalculation)
.GroupBy("$.a", null,
function (key, g) {
var result = {
groupedKey: key,
chargedQty: g.Sum("$.b"),
chargedRate: g.FirstOrDefault("$.c"),
}
return result;
}, function (x) { return x }).ToArray();
但它不工作。
嘿@jeff,它的作品。还有一个问题,如果我们在执行分组后可以做一些计算,我们可以在同一个查询中完成。例如我们得到了以上输出a:2,b:10,c:1 a:7,b:3,c:2 a:4,b:2,c:5。现在对于每个行项目,如果我们想检查c> 3,那么执行C * b作为d else,它将是c。逻辑输出为a:2,b:10,c:1,d:1 a:7,b:3,c:2,d:2 a:4,b:2,c:5 :d:10 – Rajesh