2014-07-02 116 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