Подтвердить что ты не робот

Javascript, как показать каждый элемент массива на новой строке

У меня есть строковая строчная форма, разделенная запятыми. Я использую split для получения каждого значения, и после этого я хочу показать каждое значение в новой строке, но на самом деле происходит то, что я получаю каждое значение в новой строке, кроме последние два, которые показаны вместе на одной строке. Просто чтобы было ясно:

значение1

значение2

значение3

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, но в любом случае, может быть, я ошибаюсь.

Итак, какие-нибудь идеи, почему это происходит, и как я мог бы сделать этот последний элемент также доступным для новой строки?

Спасибо

Лерон

4b9b3361

Ответ 1

Забойный цикл является подозрительным. Во-первых, вы не обрабатываете все элементы (последний отсутствует, как указал @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 />");

Ответ 2

Я изменил ваш очиститель бит. Так как уже stefan упомянул вашу ошибку.

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"));

Ответ 3

Для React-Native

const your_array_name = [
{
    id: 1,
    text: 'Lorem ipsum is simple dummy text for printing the line',
    skills: ['javascript', 'java']
},
{
    id: 2,
    text: 'Lorem ipsum is simple dummy text.',
    skills: ['javascript', 'java']
} ]

<Text style={{color:'#ff8500',fontSize:18}}>{your_array_name.skills.splice(',').join("\n")}</Text>