我有一个如下所示的嵌套数组:
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/