创建一个"虚拟总和"来自两个仅整数的数组

时间:2013-12-04 03:46:12

标签: javascript arrays

在JavaScript中,我需要计算两个数字的总和,其数字作为单个元素存储在两个数组中。结果也应该是一个数字,其数字存储为数组的元素。

例如,要表示总和1299 + 30 = 1329,它将如下所示:

A = [1,2,9,9];
B =     [3,0];
// ... compute sum ...
C = [1,3,2,9];

我为解决这个问题付出的努力毫无结果,我为没有发布只会令人尴尬的代码而道歉。

4 个答案:

答案 0 :(得分:1)

采取步骤......

1)join / glue / implode每个数组并将每个数组转换为整数。 (1299和30)

2)添加两个整数。 (1299 + 30 = 1329)

3)将总和拆分/分解为生成的“c”数组。 (1,3,2,9)

右?

var a = new array(1,2,9,9);
var b = new array(3,0);
var c = new array();
var aInt = parseInt(a.join(), 10);
var bInt = parseInt(b.join(), 10);
var cInt = aInt + bInt;
c = cInt.split('');
alert(c);

答案 1 :(得分:-1)

也许你正在寻找的是:

C = [];
temp = A.concat(B);
for( i=0; i<temp.length; i++ ) {
    if(C.indexOf(temp[i]) == -1 && temp[i] != 0) {
        C.push(temp[i]);
    }
}

这会连接两个数组,然后循环遍历连续数组,并将唯一值(不包括0)添加到名为C的数组中。

答案 2 :(得分:-1)

function mergeUnique(arr1, arr2) {
    var result = [];

    insertIfNotPresent(result, arr1);
    insertIfNotPresent(result, arr2);
    return result;
};

function insertIfNotPresent(targetArr, values) {
    values.forEach(function(value) {
        if (targetArr.indexOf(value) === -1) {
            targetArr.push(value);
        }
    });
};

但是,在您的示例中,mergeUnique(A, B)将返回[1, 2, 9, 3, 0]。如果这不是您想要的,请提供有关该功能应该做的更多详细信息。

答案 3 :(得分:-1)

A = [1,2,9,9];
B = [3,0];
(parseInt(A.join("")) + parseInt(B.join(""))).toString().split("").map(function(el) { return parseInt(el); })