Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何以成对方式添加两个数组_Javascript_Arrays - Fatal编程技术网

Javascript 如何以成对方式添加两个数组

Javascript 如何以成对方式添加两个数组,javascript,arrays,Javascript,Arrays,我想添加两个具有相同长度的JavaScript数组的值以获得第三个数组,这样第三个数组的第一个值就是两个第一个数组的第一个值的和,第三个数组的第二个值就是两个第一个数组的第二个值的和,以此类推。例如: var array1 = [1,2,3]; var array2 = [4,1,0]; var array3 = array1 + array2; 我希望数组3的结果是[1+4,2+1,3+0]=[5,3,3] 这与我们的问题不同。我想添加数字,而不是制作子数组 我知道您可以为(I=0;I AR

我想添加两个具有相同长度的JavaScript数组的值以获得第三个数组,这样第三个数组的第一个值就是两个第一个数组的第一个值的和,第三个数组的第二个值就是两个第一个数组的第二个值的和,以此类推。例如:

var array1 = [1,2,3];
var array2 = [4,1,0];
var array3 = array1 + array2;
我希望数组3的结果是
[1+4,2+1,3+0]
=
[5,3,3]

这与我们的问题不同。我想添加数字,而不是制作子数组

我知道您可以为(I=0;I执行
,但我想知道是否有内置代码可以执行此操作。

使用方法

vararray1=[1,2,3];
var array2=[4,1,0];
var array3=array1.map(函数(v,i){
返回v+array2[i];
})
控制台日志(array3)
var数组1=[1,2,3];
var array2=[4,1,0];
var array3=添加(array1,array2);
控制台日志(array3);
功能添加(arr1、arr2){
返回arr1.map(函数(值、索引){
返回值+arr2[索引];
});
}
您应该使用

通常我们更愿意在一个iterable上为…of
做一个
循环,但是在两个iterable上没有并行的方法,所以我们需要得到迭代器,这样我们就可以对它们使用
下一个
方法

这种方法将允许您对任何iterable(包括无限流)进行两两相加

console.log([...addPairwise([1,2,3], [4,1,0])]);
如果您愿意,您可以定义
addPairwise
直接使用迭代器并将其作为

addPairwise([1, 2, 3].values(), [4, 1, 0].values())

这假定对ES6的适当支持,例如节点V6、Chrome 51或Babel.<代码> > ARARY1.MAP((e,i)= e+Alray2[i])< /代码> @ rrBurl的可能副本,我想添加数字而不做子数组。为什么你认为<<代码> < /COD>循环A?这只是一段代码,可以满足您的需要。你的问题的答案是否定的,没有“内置代码”可以做到这一点。请记住,@Tushar,一些客户端还不支持ES2015的箭头函数语法。它很漂亮,@Tushar(我可以使用它的时候就可以使用它),但除了最新的浏览器版本之外,它并没有得到广泛的支持。可悲的是……:)@Tushar,也许你不会把答案当作评论发垃圾邮件?如果你这么喜欢这个答案,就提供你自己的答案。@naomik如果你这么认为的话,我不认为这是垃圾邮件。问题是我想知道是否有一个内置的代码可以做到这一点,但这个答案只是提供了一个不同的解决方案,而不是给出正确的答案,这是否定的。如果你打算提出一个替代解决方案,那么至少提供OP给出的解决方案的优缺点。在这个时代,我们担心支持IE8,而MS本身却不支持,这是相当愚蠢的。它的全球使用率低于1%。如果我们要担心IE8,为什么不也担心IE7和IE6呢?或者,为什么不至少建议使用下划线的

u2;.map
?@torazaburo OP在评论Pranav的答案时询问IE8支持情况。
addPairwise([1, 2, 3].values(), [4, 1, 0].values())