这是我的Json对象的简化形式。
var jsonObject =
[
{"City":"Monroe","Country":"USA","Latitude":47.8524,"Longitude":-121.98151},
{"City":"Austin","Country":"USA","Latitude":30.40137,"Longitude":-97.73542},
{"City":"Austin","Country":"USA","Latitude":30.32198,"Longitude":-97.70864}
]
我想分组使用City并获取属于特定城市的记录数量,到目前为止我尝试过的代码是
var query2 = $.Enumerable.From(jsonObject)
.GroupBy(
function(record) {return record.City},
function(record) {
return {City: record.City}
},
function(rec) {
return {City:rec}
}
).ToArray();
我仍然无法得到我在这里做错的事。我是linq.js的新手......任何帮助都会被认可,或至少指向正确的方向。
答案 0 :(得分:6)
所以你只想得到城市的数量?试试这个:
var query = Enumerable.From(jsonObject)
.GroupBy(
"$.City",
null,
"{ City: $, Count: $$.Count() }") // $: Key, $$: Group
.ToArray();
答案 1 :(得分:3)
//对记录进行分组
$.Enumerable.From(heatMapObjects)
.GroupBy(
"{ City: $.City }",
null,
function (key, g) {
var result = {
City:key.City
};
var groupResults = [];
g.ForEach(function (item) {
groupResults.push(item);
});
//push into array
groupedRecordsCollection.push(groupResults);
},
"$.City" // compare selector needed
)
.ToArray();
这解决了我的问题。