1

我有一个这样的 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 数组。实现这一目标的最有效方法是什么?

4

2 回答 2

1

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

http://underscorejs.org/#groupBy

于 2016-02-15T10:11:46.993 回答
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

您可以在 jsFiddle中使用此示例。

于 2016-02-15T13:38:38.270 回答