查询JavaScript对象组

时间:2016-02-15 09:42:47

标签: javascript grouping alasql

我有一个像这样的JavaScript对象:

[{"a":1,"b":2},{"a":1,"b":3},{"a":2,"b":4},{"a":2,"b":5}]

我想将此对象字段分组' a'并希望这样的事情:

[{"a":1,"values":[{"a":1,"b":2},{"a":1,"b":3}]},{"a":2,"values":[{"a":2,"b":4},{"a":2,"b":5}]}]

我有一个包含数千个元素的JavaScript数组。实现这一目标的最有效方法是什么?

2 个答案:

答案 0 :(得分:1)

Underscore JS提供了很好的方法来构建模型并对它们进行分组/过滤。

http://underscorejs.org/#groupBy

答案 1 :(得分:1)

试试这段代码:

var data = [{"a":1,"b":2},{"a":1,"b":3},{"a":2,"b":4},{"a":2,"b":5}];

var res = alasql('SELECT a, ARRAY(_) AS [values] FROM ? GROUP BY a',[data]);

此处ARRAY(_)是一个特殊的聚合函数,它将当前记录(_)保存到名为values的数组中。

您可以使用此示例in jsFiddle