【问题标题】:GroupBy using LinqJSGroupBy 使用 LinqJS
【发布时间】:2015-06-12 09:48:18
【问题描述】:

我想使用 LinqJS 执行 GroupBy 函数,但似乎效果不佳...

我的对象:

我的代码:

Enumerable.From(obj).GroupBy('{name: $.name}', null, '{name: $.name}').ToArray();

结果:

应该是:

{name: toto, name: tata}

【问题讨论】:

  • 你需要在你的数组中获得唯一的名字吗? Enumerable.From(obj).Select("x => x.name").Distinct().ToArray();也许是这个?
  • 您需要意识到的是,如果您曾经投影到一个对象以获得一个键,您必须提供一个比较器。比较 javascript 对象没有意义(前提是您没有定义 valueOf() 函数),这就是您需要它的原因。

标签: javascript linq.js


【解决方案1】:

在 C# 中,所需的函数如下所示:

var result = list.GroupBy(x => x.name, x => x.name, (baseName, names) => new {name = baseName}).ToArray();

所以,在 LinqJS 中,它看起来像:

var result = Enumerable.From(obj).GroupBy('x => x.name', 'x => x.name', 'baseName, names => {name: baseName}').ToArray();

但是,如果您只需要获取唯一名称,则可以使用:

var result = Enumerable.From(obj).Select("x => x.name").Distinct().ToArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多