Typescript / Lodash分组依据-尝试将数组键的值及其数量分组

时间:2018-08-15 13:43:02

标签: javascript angular typescript underscore.js lodash

代码:

    this.countSmth = _(data).groupBy('DeliveryStatus').values().map(
      (group) => ({ ...group[0], qty: group.length })
    ), console.log(this.countSmth);

我一直在尝试this stackblit z,并且一切正常,给了我想要的结果。但是,在我的项目中,最终结果看起来像this(link).

我用作源的HTTP响应如下:

{
    {
        "BookingId": "VALUE",
        "OrderNumber": "VALUE",
        "ArrivalTime": "VALUE",
        "DepartureTime": "VALUE",
        "Duration": "VALUE",
        "DeliveryStatus": "Accepted"
    }
]

在我的Angular项目中,Ive使用yarn添加了“ lodash”和@ types / lodash。我决定在相同的环境中测试相同的stackblitz文本,但似乎无法正常工作,这意味着我在此处写错了。

编辑:我创建了一个有角项目,并导入lodash相同。我用类型化数组替换了要获取的数据对象,这里:

https://stackblitz.com/edit/angular-qbpnqc

2 个答案:

答案 0 :(得分:0)

这次堆叠闪电战中_背后的图书馆是什么?在Lodash中,最后需要一个.value()才能从链中解包出值。

答案 1 :(得分:0)

经过8小时的故障排除并在另一个线程中获得了一些帮助,再加上同事的一些帮助,我最终获得了此功能:

  let countUniqueValues = (data, key) => {
    return _(data).groupBy(key).values().map(
      (group) => ({ key: group[0][`${key}`], count: group.length })
    ).value()
  }

现在,当我更新自己的商店时,可以通过将动作和要计数其值的键的数据传递给该函数来创建所需的任何kpi。

我什至不必触摸该功能。