Javascript如何在新行上显示数组的每个元素

Ler*_*ica 13 javascript extjs4

我有一个字符串构建形式逗号分隔值我split用来获取每个值,然后我想在新行上显示每个值,但真正发生的是我得到的每一个值都在新行上,除了显示的最后两个在同一条线上.只是为了说清楚:

值1

,值2

,值3

,值4,值5

这是我正在使用的功能:

_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;
    }
Run Code Online (Sandbox Code Playgroud)

为了清楚这是用ExtJS 4编写的,我几乎可以肯定,在这种情况下,问题是纯JavaScript并且与ExtJS 4无关,但无论如何,也许我错了.

所以任何想法为什么会发生,以及我如何能够让最后的元素进入新线?

谢谢

Leron

VIJ*_*Y P 25

我已经修改了你的功能位清洁.因为已经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');        
    }
Run Code Online (Sandbox Code Playgroud)

以上功能你可以在一行中完成:

如果它是一个数组,您可以按以下方式拆分为新行:

var arr = ['apple','banana','mango'];
console.log(arr.join('\r\n'));
Run Code Online (Sandbox Code Playgroud)

如果它是一个字符串:

var str = "apple,banana,mango";
console.log(str.split(',').join("\r\n"));
Run Code Online (Sandbox Code Playgroud)

  • 你可以做`console.log(arr.join('&lt;br&gt;'));` (2认同)

Ste*_*fan 12

for循环是可疑的.首先,你不处理所有项目(最后一个项目缺失,正如@sarfraz指出的那样).你zzz在for循环体中返回结果():

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...]
}
Run Code Online (Sandbox Code Playgroud)

在Javscript中,您可以简单地"加入"数组:

return dates.split(',').join("<br />")
Run Code Online (Sandbox Code Playgroud)

由于您只是替换字符串,因此可以使用以下replace方法:

return dates.replace(",", "<br />");
Run Code Online (Sandbox Code Playgroud)

  • `return dates.split(',').join("<br />")` - 正是我需要的.谢谢. (2认同)