首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分组并获取FirstOrDefault LINQ.js

分组并获取FirstOrDefault LINQ.js
EN

Stack Overflow用户
提问于 2016-05-31 15:22:20
回答 1查看 476关注 0票数 0

我试图在我的project.The问题中使用Linq.Js,那就是我必须应用分组,然后在一些列上使用sum,并从一些列中挑选第一个。例如:

代码语言:javascript
复制
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 }]; 

结果将在a上分组,b的和,c的第一个

代码语言:javascript
复制
a:2,b:10,c:1
a:7,b:3,c:2
a:4,b:1,c:5

到现在为止我都试过了

代码语言:javascript
复制
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();

但它不起作用。

EN

回答 1

Stack Overflow用户

发布于 2016-06-01 08:35:29

问题是您不应该将任何内容传递给FirstOrDefault()方法。这里的参数是用于选择第一项的谓词,而不是选择器。只需获取组中的第一个并获取c属性。

你可以这样写你的查询:

代码语言:javascript
复制
var query = Enumerable.From(list)
    .GroupBy("$.a", null, "{ a: $, b: $$.Sum('$.b'), c: $$.First().c }")
    .ToArray();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37539318

复制
相关文章

相似问题

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