如何使用linqjs对json结果进行分组和计数

时间:2014-11-19 16:23:29

标签: javascript linq.js

我想从我的web方法返回一些json,在客户端我可以使用linqjs进行分组和计数。

一些模拟数据看起来像......

var data = [
    { Name: "Bob" },
    { Name: "Bob" },
    { Name: "Ann" },
    { Name: "Charlie" },
    { Name: "Charlie" },
    { Name: "Charlie" }
];

我希望结果linqjs查询生成一个对象数组....

var results = [
    { "Name": "Bob", "Count": 2 },
    { "Name": "Ann", "Count": 1 },
    { "Name": "Charlie", "Count": 3 }
];

然后我可以在手柄模板中使用结果,该模板填充我的html上的选择列表。

这是我认为接近但我的计数仍然关闭的一个例子....

var groupedNames = Enumerable.From(data).GroupBy("$.Name", null,
       function (key, g) {
           var result = {
               Name: key,
               Count: g.Sum(g + 1)
           }
           return result;
       }).ToArray();

alert(groupedNames);

有没有人对如何在linqjs中完成此任务有任何建议?

1 个答案:

答案 0 :(得分:0)

要计算组中的项目,请使用Count()方法。

var query = Enumerable.From(data)
    .GroupBy("$.Name", null, "{ Name: $, Count: $$.Count() }")
    .ToArray();