如何在除Javascript中的最后一行之外的每一行添加逗号?

时间:2014-03-03 23:47:36

标签: javascript

我有下面的代码产生输出

输出

abc : 1
def : 2
ghi : 3

代码

var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// Read the contents of the file.
Session.Output("Reading file");
ts = fso.OpenTextFile("c:\\temp\\text.txt", ForReading);
s = ts.ReadAll();
u = s.split('\r\n');
for(i = 0; i < u.length; i++){
m = u[i].split(",");
var z = m[0] + " : " + (m[0] = m[1]);
}
ts.Close();

我需要输出如下;

    abc : 1,
    def : 2,
    ghi : 3

2 个答案:

答案 0 :(得分:1)

您想要Array.prototype.join()

var commaDelimited = lines.join(",\n");

这需要一个数组,如果需要,在每个条目上调用toString(),并将它们与你提供的字符串连接起来。

在你的情况下:

var lines = s.split('\r\n');
var result = [];
for (var i=0; i<lines.length; i++){
  var parts = lines[i].split(",");
  result.push( parts[0] + " : " + parts[1] );
}
var output = result.join(",\n");

或者,使用Array.prototype.map()和更多功能性编程风格:

var output = s.split('\r\n').map(function(line){
  return line.split(",").join(" : ");
}).join(",\n");

答案 1 :(得分:0)

只需向for循环的最后一次迭代添加逗号。

var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// Read the contents of the file.
Session.Output("Reading file");
ts = fso.OpenTextFile("c:\\temp\\text.txt", ForReading);
s = ts.ReadAll();
u = s.split('\r\n');
for(i = 0; i < u.length; i++){
    m = u[i].split(",");
    var z = m[0] + " : " + (m[0] = m[1]);
    if(i != u.length - 1){ //<---
        z = z + ",";
    }
    console.log(z + "\n"); //something like this...
}
ts.Close();