[英]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.