【问题标题】:Last iteration of a loop in JavaScriptJavaScript 中循环的最后一次迭代
【发布时间】:2013-03-18 14:16:25
【问题描述】:
我想做这样的事情:
for (var i=1; i<=10; i++) {
document.write(i + ",");
}
它显示如下结果:
1,2,3,4,5,6,7,8,9,10,
但是我想去掉最后一个“,”,结果应该是这样的:
1,2,3,4,5,6,7,8,9,10
【问题讨论】:
标签:
javascript
loops
for-loop
【解决方案1】:
您应该改用.join:
var txt = []; //create an empty array
for (var i = 1; i <= 10; i++) {
txt.push(i); //push values into array
}
console.log(txt.join(",")); //join all the value with ","
【解决方案2】:
你应该检查你是否已经到达循环的结尾(i == 10):
for (var i=1; i<=10; i++) {
document.write(i + (i==10 ? '': ','));
}
这是一个小提琴:
Fiddle
【解决方案3】:
您可以在生成时简单地测试:
for (var i=1; i<=10; i++) {
document.write(i);
if (i<9) document.write(',');
}
请注意,当您从一个数组开始时,这可能是您提出的问题背后的真正问题,有方便的join 函数:
var arr = [1, 2, 3];
document.write(arr.join(',')); // writes "1,2,3"
【解决方案4】:
试试这个-
str="";
for (var i=1; i<=10; i++) {
str=str+i + ",";
}
str.substr(0,str.length-1);
document.write(str);
【解决方案5】:
试试看。
var arr = new Array();
for (i=1; i<=10; i++) {
arr.push(i);
}
var output = arr.join(',');
document.write(output);
【解决方案6】:
for (var i=1; i<=10; i++) {
if (i == 10) {
document.write(i);
}
else {
document.write(i + ",");
}
}