首页 > 解决方案 > JS - 两个数组的总和,其中数组的长度可能不相等

问题描述

我需要这样的功能。

function sum(arr1, arr2) {
  return totalArray
};

sum([1,2,3,4], [5,6,7,8,9]) // [6,8,10,12,9]

我试过这样:

var array1 = [1, 2, 3, 4];
var array2 = [5, 6, 7, 8, 100];
var sum = array1.map((num, idx) => num + array2[idx]); // [6,8,10,12]

标签: javascript

解决方案


arguments您可以使用从函数中获取数组...arrays

在此之后,您可以通过数组执行Array.prototype.sort()length,最后是Array.prototype.reduce()

代码示例:

function sum(...arrays) {
  return arrays
    .sort((a, b) => b.length - a.length)
    .reduce((a, c) => a.map((n, i) => n + (c[i] || 0)) || c);
};

// two arrays
const resultTwoArrays = sum([1,2,3,4], [5,6,7,8,9]);
console.log(resultTwoArrays); // [6,8,10,12,9]

// three arrays or more...
const resultThreeArrays = sum([1,2,3,4], [5,6,7,8,9], [1,2]); 
console.log(resultThreeArrays); // [7,10,10,12,9]
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读