2014-07-02 70 views
3

拿这个数组:楠JavaScript字符串拼接

errors [ 
    "Your name is required.", 
    "An email address is required." 
] 

我想重复它,并创建这样一个字符串:

"Your name is required.\nAn email address is required.\n" 

使用此代码:

var errors = ["Your name is required.","An email address is required."]; 

if (errors) { 

    var str = ''; 

    $(errors).each(function(index, error) { 
     str =+ error + "\n"; 
    }); 

    console.log(str); // NaN 

} 

我在控制台中获得NaN。为什么是这个,我该如何解决它?

在此先感谢。

回答

9

=++=不一样。首先是x = +y,另一个是x = x + y

+x是字面上将该变量转换为数字的Number(x)的快捷方式。如果操作无法执行,则返回NaN

+=当部件(左侧或右侧)中的一个具有string类型时,就像字符串拼接一样。

+0

另一件不错的事情是在行尾和下一行的开头。很难找到并且拿到你的字符串。 – pkopac

7

您得到该结果的原因是因为您正在编写=+而不是+=。它被视为:

str = (+error) + "\n"; 

+error蒙上error了许多,这将是NaN,因为它不能被转换,所以你去。

但是你可以做errors.join("\n"),而不是更容易!

+0

'.join' ..每天学点新东西。 – beingalex