2016-08-15 97 views
0

我有這樣的代碼,它應該添加數字對並打印出新的數字。將由換行符分隔的數字列表變爲一行

var a = [580563, 750269, 127553, 478126, 490797, 919298, 440977, 549169, 935253, 48340, 605950, 859831, 26818, 336881, 438690]; 
var b = [498030, 704160, 346646, 544826, 898396, 192725, 382888, 590117, 172659, 534225, 592230, 235547, 502236, 327531, 405165]; 

for (var i = 0; i < a.length; i++) { 
    var k = a[i] + b[i]; 
    console.log(k); 
} 

這將返回此:

1078593 
1454429 
474199 
1022952 
1389193 
1112023 
823865 
1139286 
1107912 
582565 
1198180 
1095378 
529054 
664412 
843855 

我如何把它變成這樣:

1078593 1454429 474199 1022952 1389193 1112023 823865 1139286 1107912 582565 1198180 1095378 529054 664412 843855 

謝謝!

+0

您想編輯js本身,或者其它js文件從文件中讀取上述輸出並需要進行必要的轉換嗎? – Iceman

回答

4

不是記錄每個索引的輸出,而是連接一個字符串,然後在循環後處理輸出。

var a = [580563, 750269, 127553, 478126, 490797, 919298, 440977, 549169, 935253, 48340, 605950, 859831, 26818, 336881, 438690]; 
var b = [498030, 704160, 346646, 544826, 898396, 192725, 382888, 590117, 172659, 534225, 592230, 235547, 502236, 327531, 405165]; 

var k = ''; 
for (var i = 0; i < a.length; i++) { 
    k += (a[i] + b[i]) + ' '; 
} 
console.log(k); 

也可以保持在陣列中跟蹤每個總和,並加入用空間中的元素:

var k = []; 
for (var i = 0; i < a.length; i++) { 
    k.push(a[i] + b[i]); 
} 
console.log(k.join(' ')); 

而作爲用戶Arnauld提到的,這可以通過以下方式成一襯墊使用map函數。

+0

完美的工作,謝謝! –

2

下面是一個ES6解決方案,使用.map().join()

var a = [580563, 750269, 127553, 478126, 490797, 919298, 440977, 549169, 935253, 48340, 605950, 859831, 26818, 336881, 438690]; 
 
var b = [498030, 704160, 346646, 544826, 898396, 192725, 382888, 590117, 172659, 534225, 592230, 235547, 502236, 327531, 405165]; 
 

 
console.log(a.map((v, i) => v + b[i]).join(' '));

或者用於瀏覽器不支持箭頭功能:

var a = [580563, 750269, 127553, 478126, 490797, 919298, 440977, 549169, 935253, 48340, 605950, 859831, 26818, 336881, 438690]; 
 
var b = [498030, 704160, 346646, 544826, 898396, 192725, 382888, 590117, 172659, 534225, 592230, 235547, 502236, 327531, 405165]; 
 

 
console.log(a.map(function(v, i) { return v + b[i] }).join(' '));

+0

哦,這是一個更漂亮的解決方案,謝謝加入! –

1

使用ECMAScript 6+,您可以使用spread operator ...

var a = [580563, 750269, 127553, 478126, 490797, 919298, 440977, 549169, 935253, 48340, 605950, 859831, 26818, 336881, 438690]; 
 
var b = [498030, 704160, 346646, 544826, 898396, 192725, 382888, 590117, 172659, 534225, 592230, 235547, 502236, 327531, 405165]; 
 

 
console.log(...a.map((_, i) => a[i] + b[i]));

注意,這不是所有的主流瀏覽器還不支持。請參閱current compatibility

相關問題