【发布时间】:2020-06-23 20:08:22
【问题描述】:
我有一个我找不到解决方法的问题。 我有一堆按属性分组的数组:
[
[
{Id: '211321', SendFrom: 'Customer 1', Price: 120, Amount: 2},
{Id: '211341', SendFrom: 'Customer 1', Price: 320, Amount: 5},
{Id: '212351', SendFrom: 'Customer 1', Price: 300, Amount: 2},
{Id: '234121', SendFrom: 'Customer 1', Price: 230, Amount: 3},
{Id: '223321', SendFrom: 'Customer 1', Price: 410, Amount: 1}
],
[
{Id: '2321', SendFrom: 'Customer 2', Price: 120, Amount: 2},
{Id: '21341', SendFrom: 'Customer 2', Price: 320, Amount: 5},
{Id: '2351', SendFrom: 'Customer 2', Price: 300, Amount: 2},
{Id: '4121', SendFrom: 'Customer 2', Price: 230, Amount: 3},
{Id: '3321', SendFrom: 'Customer 2', Price: 410, Amount: 1}
],
[
{Id: '3453', SendFrom: 'Customer 3', Price: 520, Amount: 2},
{Id: '4334', SendFrom: 'Customer 3', Price: 220, Amount: 5},
{Id: '2343', SendFrom: 'Customer 3', Price: 700, Amount: 2},
{Id: '6654', SendFrom: 'Customer 3', Price: 430, Amount: 3},
{Id: '4534', SendFrom: 'Customer 3', Price: 210, Amount: 1}
]
]
在此示例中,对象按 SendFrom 属性分组。
我想做的是创建一个像这样的对象:
[
{SendFrom: 'Customer 1', Price: 1380, Amount: 13},
{SendFrom: 'Customer 2', Price: 1380, Amount: 13},
{SendFrom: 'Customer 3', Price: 2080, Amount: 13}
]
新对象保留原始的 SendFrom 值,但包含 Price 和 Amount 属性的更新值。
我怎样才能用 JavaScript 或 lodash 的帮助得到这个?
最好的问候, 美国
【问题讨论】:
-
您的输入看起来不正确。它既不是数组也不是对象。此外,您没有指定“如何”更新输出。它是否总是将一组中的所有价格和金额相加?
-
嗨,Rahul,是的,它总是将一组中的所有价格和金额相加。关于输入,我几乎可以肯定它是一个对象数组,但我可能是错的。
-
查看下面的@Nina Scholz 解决方案。它非常好,似乎也修复了输入。
标签: javascript arrays object lodash