2016-08-15 93 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

相关问题