【发布时间】:2020-09-18 05:37:35
【问题描述】:
试图从我的数组中的对象中总结我的值
我有 3 个对象,在每个对象中都有两个字段声明了值:
let items = [
{
id: 1,
label: 'test',
itemname: 'testitem',
pieces: 4,
weight: 0.02
},
{
id: 2,
label: 'test',
itemname: 'testitem',
pieces: 4,
weight: 0.02
},
{
id: 2,
label: 'test',
itemname: 'testitem',
pieces: 4,
weight: 0.02
}
];
所以如果我是对的,重量总和将为 0.06,碎片总和为 12,两者乘以 0.72,这意味着我想将重量总和乘以碎片总和。
我看到了这样的例子:
const weight = items.reduce((prev, cur) => {
return prev + (cur.weight * cur.pieces);
}, 0);
console.log(weight);
在此示例中,总和仅为 0.24。 有人可以帮我看看吗
编辑:@Robby Cornelissen 的评论是正确的。我的想法是错误的。
【问题讨论】:
-
"[...] 所以如果我是对的,重量总和将是 0.06,而总和将是 12,两者乘以 0.72 [...]" 你说的不对。代码给出了正确的结果。
(a * b) + (c * d) != (a + c) * (b + d)但这似乎并没有打扰那些回答这个问题的人,为您提供可以得出错误结果的代码。 -
这是因为这发生在
4*0.02 + 4*0.02 + 4*0.02而不是这个(4+4+4)*(0.02+0.02+0.02) -
为什么要将两个和相乘?这不是你获得总重量的方式。
-
@RobbyCornelissen 我的错你是对的,在这种情况下它应该是 0.24,因为它必须首先将第一个项目与碎片或更好的数量相加,然后是下一个项目和下一个项目,谢谢,我想我不应该再熬夜了哈哈
标签: javascript arrays object