Javascript как показать каждый элемент массива в новой строке
у меня есть строковая форма сборки, разделенные запятыми значения, которые я использую split
чтобы получить каждое значение, и после этого я хочу показать каждое значение в новой строке, но на самом деле я получаю каждое значение в новой строке, кроме последних двух, которые показаны вместе в одной строке. Просто чтобы прояснить:--3-->
value1
, value2
, value3
, value4, value5
вот функция, которую я использование:
_checkDates: function(dates) {
if (dates != null)
{
var zzz = dates.split(',');
var xxx = zzz.length;
console.log(xxx);
for (var i=0; i<=xxx; i++)
{
zzz[i] = zzz[i] + '<br />';
return zzz;
}
}
return dates;
}
чтобы быть ясным, это написано в ExtJS 4, я почти уверен, что в этом случае проблема является чистым JavaScript и не связана с ExtJS 4, но в любом случае, возможно, я ошибаюсь.
Итак, есть идеи, почему это происходит и как я мог бы сделать этот последний элемент, чтобы попасть на новую линию?
спасибо
Лерон
2 ответов
for-loop подозрителен. Во-первых, вы не обрабатываете все элементы (последний отсутствует, как указал @sarfraz). Sencondly вы возвращаете результат (zzz
) в теле for-loop:
for (var i=0; i<=xxx; i++)
{
zzz[i] = zzz[i] + '<br />';
return zzz; // for-loop will stop here! resulting in ["value1<br />", "Value2", etc...]
}
в Javscript вы можете просто "присоединиться" к массиву:
return dates.split(',').join("<br />")
поскольку вы просто заменяете строки, вы можете использовать replace
способ:
return dates.replace(",", "<br />");
Я изменил вашу функцию bit cleaner.поскольку Стефан уже упомянул о твоей ошибке.
function splitDate(dates) {
if (dates != null)
{
var dates = dates.split(',');
var xxx = dates.length;
console.log(xxx);
for (var i=0; i<xxx; i++)
{
dates[i] = dates[i];
}
}
console.log(dates.join('\r\n'));
return dates.join('\r\n');
}
вышеуказанная функция вы можете сделать ее в одной строке:
если это массив, вы можете разделить его на новую строку следующим образом:
var arr = ['apple','banana','mango'];
console.log(arr.join('\r\n'));
если это строку:
var str = "apple,banana,mango";
console.log(str.split(',').join("\r\n"));