所以,我写了这个for循环

if (specimins.length > 0) {
    var max = specimins[0]
    for (var x = 1; x < specimins.length; x++) {
        if ((max.weight+max.height) > (specimins[x].weight+specimins[x].height)) {
            max = specimins[x]
        }
    }
    specimins = [max]
}


但是,这是相当麻烦的。因此,基本上,要遍历一系列标本才能找到计算出的最低总重量+身高。有什么好方法可以使用array.reduce()吗?我已经尝试了一些尝试,但是大多数尝试对我都无效。

任何帮助表示赞赏。谢谢!

最佳答案

您可以使用reduce获得具有最低高度和宽度的元素,如下所示:

var max = specimens.reduce(function(a, b) {
  return (a.width + a.height) < (b.width + b.height) ? a : b
}, specimens[0])


但是,在这种情况下,使用标准的for循环并没有错。

关于javascript - 使用javascript reduce过滤对象数组,以找到计算得出的最低统计数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38579571/

10-12 12:53