Javascript 返回JS中字符串值的NaN的数组
我正在编写一个程序,通过使用套装和卡片值来制作一副卡片。我正在运行一个for循环的西服和另一个嵌套for循环的西服循环中的卡片,并试图打印一个名为“deck”的空数组中的所有组合(52)。在添加值后尝试记录数据组数组时,我在数据组数组中有字符串的值中得到“NaN” 我知道NaN的意思是“不是数字”,这就是为什么在数组中打印字符串值时会出现此错误Javascript 返回JS中字符串值的NaN的数组,javascript,arrays,nan,Javascript,Arrays,Nan,我正在编写一个程序,通过使用套装和卡片值来制作一副卡片。我正在运行一个for循环的西服和另一个嵌套for循环的西服循环中的卡片,并试图打印一个名为“deck”的空数组中的所有组合(52)。在添加值后尝试记录数据组数组时,我在数据组数组中有字符串的值中得到“NaN” 我知道NaN的意思是“不是数字”,这就是为什么在数组中打印字符串值时会出现此错误 如何打印字符串值 代码: let suites=[“黑桃”、“红心”、“钻石”、“梅花”]; 让卡片=[“A”、“2”、“3”、“4”、“5”、“6”
如何打印字符串值 代码:
let suites=[“黑桃”、“红心”、“钻石”、“梅花”];
让卡片=[“A”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“J”、“Q”、“K”];
让deck=[];
for(设i=0;i<1.length;i++){
for(设j=0;j
到
此
+变量将尝试将值强制转换为数字,类似于parseInt()
或number()
。您不能将字符串“Ace”
强制转换为数字,因此它会返回“NaN”
,并将其连接到字符串的开头
实际上,您不需要这个一元运算符,因为通过将数字与字符串(+”或“+
)串联,您已经将整数强制为字符串,这就是您在本场景中尝试实现的数据类型
JS中的强制:
并使用ES6更简洁地书写
var deck = [].concat(
...suits.map(suit =>
cards.map(card => card +' of '+ suit)
)
)
如果您知道为什么会得到NaN
,那么问题是什么?我如何打印字符串值?在这个+“Ace”
上不可能强制他们使用+卡[j]
?为什么不仅是:牌组。推送(卡[j]+“+suits[I])你不需要强迫。
deck.push(cards[j] + "of" + suits[i]);
var deck = [].concat(
...suits.map(suit =>
cards.map(card => card +' of '+ suit)
)
)