拿这个数组:
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
。为什么这样,我该如何解决?
提前致谢。
答案 0 :(得分:13)
=+
与+=
不同。首先是x = +y
,另一个是x = x + y
。
+x
是Number(x)
字面上将变量转换为数字的快捷方式。如果无法执行操作,则返回NaN
。
+=
类型时, string
就像字符串连接一样。
答案 1 :(得分:9)
您获得该结果的原因是因为您正在撰写=+
而不是+=
。它被视为:
str = (+error) + "\n";
+error
将error
投射到一个数字,该数字为NaN
,因为它无法转换,所以你去了。
但你可以做errors.join("\n")
而不是更容易!