我需要这样的功能。
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]
我需要这样的功能。
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]
7条答案
按热度按时间ukxgm1gy1#
首先,可以使用Spread syntax (...)从函数的
arguments
中获取数组,然后使用Array.prototype.sort()按数组的length
对其进行排序,最后使用Array.prototype.reduce()获取结果数组代码:
jvidinwx2#
冒着由于使用循环而不受欢迎的风险:
|| 0
处理数组在i
处没有项的可能性,因为如果没有项,arrX[i]
的结果是undefined
,undefined || 0
的结果是0
。tpgth1q73#
我试着这样。
非常接近,但是
map
会在array1
的末尾停止,所以你不会从array2
中得到后续的条目。只要选择两个数组中较长的一个,然后处理另一个数组在arrayX[idx]
处可能没有条目的事实。你可以用|| 0
习惯用法来做到这一点:或者,您可以使用新的(但可进行多边形填充)
Array.from
来创建结果数组,并使用回调来构建条目:不过,Mosho's answer非常简单。
0md85ypi4#
根据长度找到长数组和短数组,用
Array.map()
迭代短数组,从长数组中取值,然后用Array.slice()
和Array.concat()
将长数组剩余的部分相加:zbsbpyhn5#
我们在玩代码高尔夫吗?这是个生成器解决方案。
liwlm1x96#
您可以使用类似以下的自定义逻辑:
k97glaaz7#
尝试使用
map()
: