Javascript Typescript/Lodash group by——尝试将数组键的值与其数量分组

Javascript Typescript/Lodash group by——尝试将数组键的值与其数量分组,javascript,angular,typescript,underscore.js,lodash,Javascript,Angular,Typescript,Underscore.js,Lodash,代码: 我一直在用z做实验,一切都很好,给了我想要的结果。然而,在我的项目中,最终结果看起来是 我用作源的HTTP响应如下所示: this.countSmth = _(data).groupBy('DeliveryStatus').values().map( (group) => ({ ...group[0], qty: group.length }) ), console.log(this.countSmth); 在我的角度项目中,我使用纱线添加“lodas

代码:

我一直在用z做实验,一切都很好,给了我想要的结果。然而,在我的项目中,最终结果看起来是

我用作源的HTTP响应如下所示:

    this.countSmth = _(data).groupBy('DeliveryStatus').values().map(
      (group) => ({ ...group[0], qty: group.length })
    ), console.log(this.countSmth);
在我的角度项目中,我使用纱线添加“lodash”和@types/lodash。我决定在相同的环境中测试相同的stackblitz文本,但它似乎不起作用,这意味着我在那里写错了

编辑:我创建了一个角度项目,并导入了相同的lodash。我将得到的数据对象替换为类型化数组,如下:


在这次堆栈闪电战中,
背后的库是什么?在Lodash中,您需要在最后添加一个来打开链中的值。

经过8个小时的故障排除和其他线程中的一些帮助+同事的一些帮助,我最终使用了以下功能:

{
    {
        "BookingId": "VALUE",
        "OrderNumber": "VALUE",
        "ArrivalTime": "VALUE",
        "DepartureTime": "VALUE",
        "Duration": "VALUE",
        "DeliveryStatus": "Accepted"
    }
]
现在,当我更新我的存储时,我可以调用此函数来创建我想要的任何kpi,方法是将来自操作的数据和我想要计算其值的键传递给它


我甚至不必触摸这个函数。

underline.js还是lodash?问题中没有角度和字体,标签可以删除。嗯,我尝试了一下,并将其添加到lodash链的末尾,但似乎没有什么不同。我使用了“lodash”中的“import*as”,并通过纱线安装了它。尝试在控制台中运行您的代码:我创建了一个运行angular的stackblitz,并以相同的方式安装了everyhting,为简单起见,我将使用数据数组的缩小版本:
  let countUniqueValues = (data, key) => {
    return _(data).groupBy(key).values().map(
      (group) => ({ key: group[0][`${key}`], count: group.length })
    ).value()
  }