添加两个数组的元素 - 最好的方法

don*_*yor 0 javascript jquery

var a = "1:2:3:4";
var b = "0:1:5:2";
Run Code Online (Sandbox Code Playgroud)

我想在最后:

var c = "1:3:8:6"; 
Run Code Online (Sandbox Code Playgroud)

意思是,数字按列相加.

我的解决方案是:

var i, k;
var a_arr = a.split(':');
var b_arr = b.split(':');
for (i=0;i<a_arr.length;i++){
   and here again another loop over b_arr
}
Run Code Online (Sandbox Code Playgroud)

好的,我没有解决方案..最可爱的方法是什么?

Jam*_*rpe 5

基于我的注释,您可以使用i索引两个数组:

var i, k;
var a_arr = a.split(':');
var b_arr = b.split(':');
var c_arr = [];
for (i=0;i<a_arr.length;i++){
    c_arr.push(parseInt(a_arr[i], 10) + parseInt(b_arr[i], 10));
}

//And use join to get the final result
var c = c_arr.join(":");
Run Code Online (Sandbox Code Playgroud)


ade*_*neo 5

您可以只映射它并返回添加的值?

var a = "1:2:3:4";
var b = "0:1:5:2";
    
var c = a.split(':').map(function(x, i) {
    return (+x) + (+b.split(':')[i]);
}).join(':');

document.body.innerHTML = '<pre>' + c + '</pre>';
Run Code Online (Sandbox Code Playgroud)

或在地图外分裂

var c = (function(y) {
    return a.split(':').map(function(x, i) {
        return (+x) + (+y[i]);
    }).join(':')
})(b.split(':'));
Run Code Online (Sandbox Code Playgroud)

  • @JamesThorpe - 谢谢,我总是试着让简单的东西看起来很复杂,[这是礼物.......*和*诅咒](http://www.quickmeme.com/img/bb/bb43fa6b17052e3f8ea903b4f1b95168fb70a4fdb455c030291cecbab1f2836b. jpg)! (3认同)