任意两个数组的每个索引值的总和

时间:2014-10-19 22:05:12

标签: javascript arrays

JavaScript程序,用于计算任意两个数组的每个索引值的总和

示例:

array1 = [16,0,2,3,4];
array2 = [3,5,6,7,8,13];

预期产出:

[19, 5, 8, 10, 12, 13]

3 个答案:

答案 0 :(得分:2)

假设这段代码:

var array1 = [16,0,2,3,4],
    array2 = [3,5,6,7,8,13],
    l = Math.max(array1.length, array2.length);

您可以尝试for循环:

var result = Array(l);
for(var i=0; i<l; ++i) result[i] = (array1[i] || 0) + (array2[i] || 0);

答案 1 :(得分:0)

编辑,更新。

为测试数组_lena添加了函数b,以获取最高length属性i和最少length属性j两个参数数组之间。

阵列ab可以按任意顺序输入_len。输入数组i在两个输入数组之间具有最大length属性,调用Array.prototype.map()

返回数组array3,将i的每个成员添加到相应j索引的k的每个成员;如果i

处没有相应的k索引成员,则返回j成员
var array1 = [16,0,2,3,4]
     , array2 = [3,5,6,7,8,13]
     , len = array1.length
     , array3 = (function _len(a, b) {
                var i = a.length > b.length ? a : b
                , j = i === a ? b : a;
                return i.map(function(v, k) {
                    return v + j[k] || v  
                });
              }(array1, array2))

var array1 = [16,0,2,3,4]
     , array2 = [3,5,6,7,8,13]
     , len = array1.length
     , array3 = (function _len(a, b) {
                var i = a.length > b.length ? a : b
                , j = i === a ? b : a;
                return i.map(function(v, k) {
                    return v + j[k] || v  
                });
              }(array1, array2))
console.log(array3);
document.write(array3)

答案 2 :(得分:0)

您也可以使用纯JavaScript。

&#13;
&#13;
    var array1 = [16,0,2,3,1];
    var array2 = [3,5,6,7,8,13];
    var array3 = [];

    if (array1.length >= array2.length)
    {
        array3 = array1.map(function(num, i, array) {
          return num + (array2[i] || 0);
        });
    }else{
        array3 = array2.map(function(num, i, array) {
          return num + (array1[i] || 0);
        });
    }


    document.getElementById("result").innerHTML = "array3: " + array3.toString();
&#13;
<div id="result"></div>
&#13;
&#13;
&#13;