[英]Sum of individual arrays inside two-dimensional array
當談到在二維數組中加入各個數組的數量時,我就是我的智慧。 例如:
var arrArrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
function sumArray(numberArray) {
var sum = 0;
numberArray.forEach(function(a,b) {
sum = a + b;
});
return sum;
}
函數sumArray可以成功地加總並返回常規(一維數組)的總和,但是當傳遞arrArrays時,它返回一個隨機值的數組。
我需要能夠返回多個數組在另一個數組中的總和。 原因是因為我需要這個下一個函數來調用sumArray():
function sumSort(arrayOfArrays) {
arrayOfArrays.sort(function(a,b) {
var sumArray1 = sumArray(a);
var sumArray2 = sumArray(b);
if (sumArray1 < sumArray2) {
return -1;
} else {
return 0;
}
});
}
理論上,sumSort()將根據每個數組內的數字之和(從最高到最低)對數組進行排序。
任何提示都會很棒。 先感謝您!
此方法將允許您處理任何嵌套深度的數組。 首先,你將扁平化內部數組 ,然后像往常一樣對它們求和。 如果您還希望它處理非嵌套數組,則可以在第一級添加檢查,如此問題所示。
var arrs = [[[[1]], [2, 3]], [4, 5, 6], [7, 8, 9]];
//https://stackoverflow.com/a/15030117/1470607
function flatten(arr) {
return arr.reduce(function(flat, arr) {
return flat.concat(Array.isArray(arr) ? flatten(arr) : arr);
}, []);
};
var sums = arrs.map(function(arr) {
return flatten(arr).reduce(function(sum, item) {
return sum + item;
});
}); //[6, 15, 24]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.