【发布时间】:2021-05-05 11:32:48
【问题描述】:
我正在使用 JS 和 LoDash 库。
我从服务器收到的数据如下所示:
const statsToSort = [
{name: "critA", value: 11111},
{name: "critA", value: 11},
{name: "critA", value: 221},
{name: "critA", value: 54},
{name: "critB", value: 1222},
{name: "critC", value: 231},
{name: "critD", value: 323},
{name: "critC", value: 0},
]
我需要重新排列,对相同键的值求和并重新组织。为此,我创建了以下数组:
let finalStats = [{ "critA": 0 }, { "critB": 0 }, { "critC": 0 }, { "CritD": 0 }];
我正在尝试使用 Lodash 库来填充名称的 finalStats 跳跃并对值求和。
我目前的功能是这样的:
function mergeNames(arr) {
return _.chain(arr).groupBy('name').mapValues(function (v) {
return _.sum(v);
})
预期的结果应该是这样的:
/**
statsToSort:[
{name: "critA", value:11397},
{name: "critB", value:1222},
{name: "critC", value:231},
{name: "critD", value:323},
*/
到目前为止,我所展示的功能……什么都没有。就像,完全一样。它甚至不按键对数组进行排序。
问题: 你能帮帮我吗
- 修改函数得到我提到的结果
- 考虑到名称可能未按字母顺序排列并且 statsToSort 可能不包含要在 finalStats 中填充的一个或几个名称,可能会向函数添加另一层,以便填充 finalStats 数组。李>
提前致谢
【问题讨论】:
-
请说明您拥有什么以及您想获得什么。我还不清楚...
-
@NinaScholz 我稍微修改了一个问题。是不是更清楚了?
标签: javascript arrays lodash