【问题标题】:linq.js using group by on multiple fieldslinq.js 在多个字段上使用 group by
【发布时间】:2015-01-27 23:56:03
【问题描述】:

我目前有一个对象数组,例如

[{Test: "123", Two: "234"}, {Test: "123", Two: "234"}, {Test: "123", Two: "222"}]

使用 linq.js 我如何能够运行 group by 并返回一个列表,该列表返回重复 (test,two) 值的计数。我希望我的输出类似于:

[{Key: {Test: "123", Two: "234"}, Value:2}, {Key: {Test: "123", Two: "222"}, Value:1}  ]

我认为 Linq.js 中的 GroupBy 方法可能会有所帮助,但我不确定如何使用它。

【问题讨论】:

    标签: javascript json linq.js


    【解决方案1】:

    您需要使用包含比较选择器的GroupBy() 的重载。您的键是对象,但您需要提供一种比较它们的方法。将项目投影到可以比较的东西(例如,一串键)。

    var data = [
        { Test: "123", Two: "234" },
        { Test: "123", Two: "234" },
        { Test: "123", Two: "222" }
    ];
    var query = Enumerable.From(data)
        // GroupBy (keySelector, elementSelector, resultSelector, compareSelector)
        .GroupBy(
            null, // (identity)
            null, // (identity)
            "{ Key: $, Value: $$.Count() }",
            "'' + $.Test + '-' + $.Two"
        )
        .ToArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      相关资源
      最近更新 更多