2

これは簡略化された形式の 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 を使用して groupBy し、特定の都市に属するレコードの数を取得したい. これまでに試したコードは

    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を初めて使用しています...助けがあれば、感謝するか、少なくとも正しい方向に向けてください。

4

2 に答える 2

6

では、都市の数を取得したかっただけですか? 代わりにこれを試してください:

var query = Enumerable.From(jsonObject)
    .GroupBy(
        "$.City",
        null,
        "{ City: $, Count: $$.Count() }") // $: Key, $$: Group
    .ToArray();
于 2013-12-18T18:35:50.420 に答える
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();

これで私の問題は解決しました。

于 2013-08-07T10:26:53.057 に答える