在JavaScript中,我需要计算两个数字的总和,其数字作为单个元素存储在两个数组中。结果也应该是一个数字,其数字存储为数组的元素。
例如,要表示总和1299 + 30 = 1329
,它将如下所示:
A = [1,2,9,9];
B = [3,0];
// ... compute sum ...
C = [1,3,2,9];
我为解决这个问题付出的努力毫无结果,我为没有发布只会令人尴尬的代码而道歉。
答案 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); })