查询 JavaScript 对象分组依据
Query JavaScript Object group by
我有一个这样的 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 数组。实现此目标的最有效方法是什么?
Underscore JS 提供了构建模型和 grouping/filtering 它们的好方法。
试试这个代码:
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。
我有一个这样的 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 数组。实现此目标的最有效方法是什么?
Underscore JS 提供了构建模型和 grouping/filtering 它们的好方法。
试试这个代码:
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。