簡體   English   中英

添加兩個數組的元素-最好的方法

[英]add elements of two arrays - the best way

var a = "1:2:3:4";
var b = "0:1:5:2";

最后我要:

var c = "1:3:8:6"; 

意思是,數字是按列求和的。

我的解決方案是:

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
}

嗯,我沒有解決辦法。.最簡單的方法是什么?

根據我的評論,您可以使用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(":");

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

 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>'; 

或在地圖外拆分

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

您可以使用索引i添加只需使用join()

 var a = "1:2:3:4"; var b = "0:1:5:2"; var c = []; var i, k; var a_arr = a.split(':'); var b_arr = b.split(':'); for (i=0;i<a_arr.length;i++){ c[i] = parseInt(a_arr[i], 10) + parseInt(b_arr[i], 10); //Add using index } console.log(c.join(':')); //Use Join 

http://jsfiddle.net/fLavfcjz/1/

使用.map() ,不要忘記parseInt(),否則數字將被視為字符串。

var a = "1:2:3:4";
var b = "0:1:5:2";

var arrayA = a.split(':');
var arrayB = b.split(':');

var combinedArr = arrayA.map(function (v, i) {
    return parseInt(v,10) + parseInt(arrayB[i],10); // or return (+v) + (+arrayB[i]);
});

console.log(combinedArr.join(':')); //1:3:8:6

嘗試這個

var a = "1:2:3:4";
var b = "0:1:5:2";

var a_arr = a.split(':');
var b_arr = b.split(':');

var c_arr = [];

for (i in a_arr) {
    var to_add = 0;
    if (b_arr[i] != undefined) to_add = b_arr[i];

    c_arr[i] = a_arr[i] + to_add;
}

您不需要第二個循環。 以下代碼段的結果數組將具有較短輸入數組的長度。

var a = '1:2:3:4'
var b = '0:1:5:2'

var aArray = a.split(':')
var bArray = b.split(':')
var result = []

for (
  var i = 0, aLength = aArray.length, bLength = bArray.length;
  i < aLength && i < bLength;
  i++
) {
  result.push(Number(a[i]) + Number(b[i]))
}

result = result.join(':')

console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM