Последняя итерация цикла в JavaScript

Я хочу сделать что-то вроде этого:

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

6 ответов


вы должны проверить, попали ли вы в конец цикла (i == 10):

for (var i=1; i<=10; i++) {
    document.write(i + (i==10 ? '': ','));
}

вот огурчик:

Скрипка


вы должны использовать .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 ","

вы можете просто проверить при генерации:

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"

Попробуйте Это-

str="";
for (var i=1; i<=10; i++) {
   str=str+i + ",";
}
str.substr(0,str.length-1);
document.write(str);

попробовать его.

 var arr = new Array();
 for (i=1; i<=10; i++) {
    arr.push(i);
 }
 var output = arr.join(',');
 document.write(output);

for (var i=1; i<=10; i++) {
    if (i == 10) {
        document.write(i);
    }
    else {
        document.write(i + ",");
    }
}