linq.js groupby和Json

Raz*_*aza 2 javascript jquery jquery-plugins linq.js

这是我简化形式的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}
    ]
Run Code Online (Sandbox Code Playgroud)

我想分组使用City并获取属于特定城市的记录数量,到目前为止我尝试过的代码是

    var query2 = $.Enumerable.From(jsonObject)
.GroupBy(
function(record) {return record.City},

function(record) {
        return {City: record.City}
    },
function(rec) {
        return {City:rec}
    }
).ToArray();
Run Code Online (Sandbox Code Playgroud)

我仍然无法得到我在这里做错的事.我是linq.js的新手......任何帮助都会被认可,或至少指向正确的方向.

Jef*_*ado 6

所以你只是想得到城市的数量?试试这个:

var query = Enumerable.From(jsonObject)
    .GroupBy(
        "$.City",
        null,
        "{ City: $, Count: $$.Count() }") // $: Key, $$: Group
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 在lambda字符串中使用`$`只对应于函数的参数.它们的数量表示它代表哪个参数最多四个.所以`$`是第一个参数,`$$`是第二个,`$$$`是第三个,而```是第四个.因此,只要您知道函数的预期签名是什么,就应该很容易破译. (2认同)