繁体   English   中英

使用动态键减少对象数组

[英]Reduce Array of Objects with Dynamic Keys

这看起来应该很简单,但我的搜索没有任何结果。

我有一个看起来像这样的对象数组:

[{"A":4,"B":2},{"A":2,"B":1},{"A":3,"B":1},{"A":2,"B":1,"C":1}]

我想把它压扁成看起来像这样的东西(我认为是一个 reduce 函数):

{"A": 11, "B": 5, "C": 1}

对象的起始数组是一个更大和更复杂的起始对象转换的产物。 重要的细节是键本身是任意值(即您可能会看到“D”和“E”,但代码本身需要对此视而不见)。 我已经使用 Underscore.js 达到了这一点,我希望找到类似的干净、功能风格的解决方案。

获取键/值对并更新总和。

 var data = [{ A: 4, B: 2 }, { A: 2, B: 1 }, { A: 3, B: 1 }, { A: 2, B: 1, C: 1 }], result = data.reduce((r, o) => (Object.entries(o).forEach(([k, v]) => r[k] = (r[k] || 0) + v), r), {}); console.log(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM