1

我从 api 获取数据并将其显示在具有 2 列的表中。第一列包含名称,第二列包含金额,如表 1 所示。api中的数据包含重名,同名金额不同。我想以这样一种方式显示,它总结了唯一名称的金额,并仅显示唯一名称和总金额,如表 2 所示。我正在使用 ReactJS 来显示表格。获得此结果的更好逻辑是什么。我正在从 api 作为 json 检索数据并将其放入数组中。我对 React 很陌生,并且发现很难使用数据。

在此处输入图像描述

4

1 回答 1

2

核心问题并不是真正与react相关的问题,因此,考虑到我无法影响API,我们可以解决javascript中的聚合。一个有用的库是“lodash”——它知道如何做一个经典的“ reduce ”,并且知道如何从一个对象创建一个数组。在节点控制台上解决这个问题,我们得到:

npm install lodash
node
>

...

const ld = require("lodash");
a = [{n: "joe", d: 1},{n: "joe", d: 1}, {n: "joe", d: 3} ]
b = ld.reduce(a, (agg, {n,d}) => { agg[n] = (agg[n] || 0) + d; return agg; }, {});
ld.map(b, (val,prop) => ({ n: prop, d: val});

最后一行的返回值给你

[ { n: 'joe', d: 5 } ]
于 2017-05-25T17:00:14.727 回答