javascript - 如何使用 linq-es2015 在两个键上进行 GroupBy?

标签 javascript angular linq

小问题:如何在 Angular 应用中使用 linq-es2015 对两个键进行分组?

一个键很好用,但我不知道如何添加另一个键。

var results = asEnumerable(fieldtoregion)
      .GroupBy(x => x.regionId, x => x, (key, b) => {
        return { regionId: key, fields: asEnumerable(b).ToArray() }
      }).ToArray();

第二个键名:isCollection。 我试过:

  1. x => { r: x.regionId, c: x.isCollection }
  2. x => ({ r: x.regionId, c: x.isCollection })
  3. x => ("$x.regionId $x.isCollection")

任何帮助将不胜感激!!

这是要测试的 TypeScript 类:

export class FieldViewModel {
  id!: number;
  postId!: number;
  pageId!: number;
  regionId?: string | undefined;
  translationId!: number;
  clrType?: string | undefined;
  fieldId?: string | undefined;
  isCollection!: boolean;
}

最佳答案

您可以尝试仅使用第三个和第四个参数进行分组。分组字符串由两个带空格的属性组成。

var results = asEnumerable(fieldtoregion)
        .GroupBy(
            null,
            null,
            (key, b) => ({ regionId: key, fields: asEnumerable(b).ToArray() }),
            "$.regionId + ' ' + $.isCollection"
        )
        .ToArray();

关于javascript - 如何使用 linq-es2015 在两个键上进行 GroupBy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004218/

相关文章:

javascript - 将 JSON 文件中的数据绑定(bind)到 Angular 2 View

C# LINQ 忽略数据表中的空值

javascript - Angular $q.defer() 返回 Object{then : function}

javascript - 有没有办法在Wordpress中异步加载脚本?

javascript - jQuery - 无法在 Firefox 中编辑/删除输入值

angular - FormControl 值是否可以是数组?

angular - 使用 Angular 2 的 TestComponentBuilder 让我感到困惑

linq - 拆分为 KeyValuePair 而不是 Array

c# - LINQ,使用包含函数

javascript - 如何延迟复选框回发?