这似乎是一个简单的问题,但我正在与linqjs语法作斗争。
下面是基本的JSON:
{
"DateEvent": "2013-04-23 14:00:00Z",
"DateRecord": "2013-04-23 14:00:00Z",
"Amount": -9500,
"Type": {
"Description": "Capital"
},
"Currency": {
"ID": "USD"
}
}
使用linqjs如何返回每种货币的总数?
Enumerable.From(data)
.GroupBy("{ currency: $.Currency.ID }", null, function (key, g) {
var result = {
currency: key.currency,
total: g.Sum($.Amount)
}
});
上面的代码不起作用。
5条答案
按热度按时间mo49yndu1#
你几乎成功了。你的GroupBy和Sum中的键选择器不正确。键选择器也需要是一个字符串。尝试以下操作:
w80xi6nr2#
我是开源项目http://www.jinqJs.com的作者
你可以很容易地通过执行:
inb24sb23#
只是进一步扩展这个问题。
以下语法将按附加字段对数据进行分组:
jqjz2hbq4#
假设你有一个类似的对象数组,你可以这样写你的查询:
我个人觉得使用lambda字符串语法更简洁更好。混合使用lambda和函数会导致代码更混乱。
yyyllmsg5#
原生JS更新
由于几乎所有浏览器都广泛支持JS操作,并且在必要时编译的构建工具激增,除非您已经导入linqjs,否则我建议使用原生JS方法。
Stack Snippets中的Demo
参见:How to group by and sum an array of objects?