linqjs group with a sum

pal*_*gap 4 javascript linq jquery linq.js

这似乎是一个简单的问题,但我正在努力使用linqjs语法.

给出以下基本JSON:

{
        "DateEvent": "2013-04-23 14:00:00Z",
        "DateRecord": "2013-04-23 14:00:00Z",
        "Amount": -9500,
        "Type": {
            "Description": "Capital"
        },
        "Currency": {
            "ID": "USD",
        }
}
Run Code Online (Sandbox Code Playgroud)

使用linqjs如何返回每种货币的总额?

Enumerable.From(data)
    .GroupBy("{ currency: $.Currency.ID }", null, 
        function (key, g) {
            var result = {
                    currency: key.currency,
                    total: g.Sum($.Amount)
                }});
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.

Rei*_*las 6

你几乎拥有它.GroupBy和Sum中的键选择器不正确.键选择器也需要是一个字符串.请尝试以下方法:

var result = Enumerable.From(data).GroupBy("$.Currency.ID", null,
    function (key, g) {
        var result = {
            currency: key,
            total: g.Sum("$.Amount")
        }
        return result;
    }).ToArray();
Run Code Online (Sandbox Code Playgroud)