Javascript 返回JS中字符串值的NaN的数组

Javascript 返回JS中字符串值的NaN的数组,javascript,arrays,nan,Javascript,Arrays,Nan,我正在编写一个程序,通过使用套装和卡片值来制作一副卡片。我正在运行一个for循环的西服和另一个嵌套for循环的西服循环中的卡片,并试图打印一个名为“deck”的空数组中的所有组合(52)。在添加值后尝试记录数据组数组时,我在数据组数组中有字符串的值中得到“NaN” 我知道NaN的意思是“不是数字”,这就是为什么在数组中打印字符串值时会出现此错误 如何打印字符串值 代码: let suites=[“黑桃”、“红心”、“钻石”、“梅花”]; 让卡片=[“A”、“2”、“3”、“4”、“5”、“6”

我正在编写一个程序,通过使用套装和卡片值来制作一副卡片。我正在运行一个for循环的西服和另一个嵌套for循环的西服循环中的卡片,并试图打印一个名为“deck”的空数组中的所有组合(52)。在添加值后尝试记录数据组数组时,我在数据组数组中有字符串的值中得到“NaN”

我知道NaN的意思是“不是数字”,这就是为什么在数组中打印字符串值时会出现此错误


如何打印字符串值

代码:

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)
    )
)