javascript - 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]
解决方案
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; }
推荐阅读
- python-3.x - IndentationError:创建python3 virtualenv时出现意外缩进
- javascript - 使用javascript将数组数据循环到对象中
- python - 为 100 名学生输入分数而不制作 100 个输入框
- opencv - OpenCV 4.4.0 没有内置 GPU 支持?
- python - 打开 KivyMD(main.py 文件)时出现问题
- python - ImportError:没有名为引擎的模块
- java - 如何在java中拆分不区分大小写的字符串?
- javascript - 通过字符串的多个位置从字符串生成合并数组
- c# - C# HttpWebRequest 在“wwwt” URL 上引发异常
- ios - 无法使用 Swift 解码器进行解码