javascript - 求嵌套数组内值的总和

标签 javascript arrays nested

我有一个如下所示的嵌套数组:

let scores = [  
[[2, 1, 0], [2, 1, 0]],  
[[4, 2, 0]],  
[[4, 2, 0]],  
[[4, 2, 0],[2, 1, 0]]  
]  

我想做的是获取每个数组的最高值(并对包含多个数组的数组中的最高值求和,即在第一个数组中,[[2,1,0],[ 2,1,0]],我需要对每个数组的最高值求和,在本例中为 2+2。) 我的想法是 shift() 每个数组的第一个值或 slice()/删除较低的值,这样我的数组看起来像这样:
newScores = [[[2],[2]], [4], [4], [[4],[2]]]

最终,我想要的输出是:output = [[4], [4], [4], [6]]

希望有人能指点迷津!谢谢!

最佳答案

您需要迭代父数组,然后对于其中的每个数组 - 迭代其数组,从每个数组中获取最大数字 - 然后对子数组求和,最后将总计插入输出数组。

let scores = [  
[[2, 1, 0], [2, 1, 0]],  
[[4, 2, 0]],  
[[4, 2, 0]],  
[[4, 2, 0],[2, 1, 0]]  
]

var output = [];
scores.forEach(function(score) {
  var total = 0
  score.forEach(function(arr) {
    total += arr.reduce(function(a, b) { return Math.max(a, b); }); 
  })
  output.push(total);
})

console.log(output); // gives [4,4,4,6]

关于javascript - 求嵌套数组内值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48270217/

相关文章:

javascript - 如果它们有共同的关键字,我如何从多个类中选择一个?

javascript - 在声明之前引用 JavaScript 值 - 有人可以解释一下吗

c - 如何连续声明结构而不将其设为数组?

python - 我如何计算停顿预测中的短语

R - 使用嵌套数据框运行具有不同参数集的函数

javascript - Flash:在全屏模式下使用鼠标滚轮事件(Windows 和 Mac)

JavaScript 设置日期错误

c# - 查找数组中的重复值并将其全部输出

mysql嵌套查询的最大值

java - 循环遍历 ConcurrentHashMap 的 ConcurrentHashMap