我有下面的代码产生输出
输出
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
答案 0 :(得分:1)
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();