使用Javascript - 总和两个数组在单次迭代 [英] Javascript - Sum two arrays in single iteration

查看:89
本文介绍了使用Javascript - 总和两个数组在单次迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要总结数字数组与不同数字阵列其相应价值的每一个值,我想这样做没有通过每一个人的价值循环。所以:

I want to sum each value of an array of numbers with its corresponding value in a different array of numbers and I want to do this without looping through each individual value. So:

var array1 = [1,2,3,4];
var array2 = [5,6,7,8];

var sum    = [6,8,10,12];

不过,我很乐意这样做一举而不是做这样的:

But I'd love to do it in one fell swoop instead of doing this:

for(var i = 0; i < array1.length; i++){
   sum.push(array1[i] + array2[i]);
}

任何人都可以想办法?我是pretty难住了。

Can anyone think of a way? I'm pretty stumped.

推荐答案

您无法回避的循环,但你可以这样做一次,并添加一个函数来使用所有数组对象 Array.prototype

You can't avoid the loop, but you can do this once and add a function to all Array objects using Array.prototype.

下面是和例如:

// Add a SumArray method to all arrays by expanding the Array prototype(do this once in a general place)
Array.prototype.SumArray = function (arr) {
    var sum = [];
    if (arr != null && this.length == arr.length) {
        for (var i = 0; i < arr.length; i++) {
            sum.push(this[i] + arr[i]);
        }
    }

    return sum;
}

// here's your code
var array1 = [1, 2, 3, 4];
var array2 = [5, 6, 7, 8];
var sum = array1.SumArray(array2);
console.log(sum); // [6,8,10,12]

这是你的小提琴

这篇关于使用Javascript - 总和两个数组在单次迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆