1.使用map
来遍历第一个数组(假设所有数组长度相同)的每个索引,然后使用reduce
来累加同一个位置上所有数组的值。如果某个数组中不存在相应的元素(即index超出了数组长度),则使用|| 0
确保不会对结果产生影响
function sumArraysAtIndex(...arrays) {
return arrays[0].map((_, index) => {
return arrays.reduce((sum, array) => sum + (array[index] || 0), 0);
});
}
// 示例
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const array3 = [7, 8, 9];
const summedArray = sumArraysAtIndex(array1, array2, array3);
console.log(summedArray); // 输出: [12, 15, 18]
2.把多个数组合成一个对象,遍历对象,在遍历数组每一项进行求和
var arr1 = [1,2,3,4,5,6];
var arr2 = [11,12,13,14,15,16];
var arr3 = [10,21,31,41,51,61];
var sum = {arr1,arr2,arr3};
//保存结果的数组
var result = [];
for(var key in sum ){
//遍历数组的每一项
$.each(sum [key],function(index,val){
if( result[index] == null || result[index] == ""){
result[index] = 0 ;
}
result[index] += val ;
})
}
//打印结果
console.log(result); //[22, 35, 47, 59, 71, 83]