我正在研究Freecodecamp问题,一个组件正在取5张卡的值,将其与您指定的值进行比较,然后根据这些卡显示当前计数。
所以例如;
编号为2,3,4,5和6的卡片应将计数增加1。 数字7,8和9的卡片什么都不做。 卡10,J,Q,K,A应将计数减1。
因此,如果我给它5个卡值,它应该添加它们并根据这些卡值为我提供计数。
这是我的代码(我知道它很草率,但试图让它变得更好);
var count = 0;
function cc(card) {
// Only change code below this line
switch (card) {
case ("A"):
--count; }
switch (card) {
case ("2"):
++count; }
switch (card) {
case ("3"):
++count; }
switch (card) {
case ("4"):
++count; }
switch (card) {
case ("5"):
++count; }
switch (card) {
case ("6"):
++count; }
switch (card) {
case ("7"):
}
switch (card) {
case ("8"):
}
switch (card) {
case ("9"):
}
switch (card) {
case ("10"):
--count; }
switch (card) {
case ("J"):
--count; }
switch (card) {
case ("Q"):
--count; }
switch (card) {
case ("K"):
--count; }
return count;
// Only change code above this line
}
// Add/remove calls to test your function.
// Note: Only the last will display
cc(2); cc(3); cc(7); cc('K'); cc('A');
现在我尝试过使用返回计数; return ++ count;并返回--count;这些都给了我不同的价值。我想我可能不会在底部引用cc的值甚至根据正确的值来获取计数,我想我可能只是为整套卡发出盲目计数。
任何帮助都非常感激。提前谢谢。
答案 0 :(得分:1)
这样的事情:
var count = 0;
function cc(card) {//or, with ES6: cc = (card) => { (no 'function' keyword required)
switch (card) {
case ("A")://all of these 'fall through' until they hit break...be careful with this, and comment it in your code
case ("10"):
case ("J"):
case ("Q"):
case ("K"):
count -= 1;//or, count = count - 1
break;//break sends you out of the switch statement
case ("2")://same here
case ("3"):
case ("4"):
case ("5"):
case ("6"):
count += 1;
break;
//no need to do anything with 7, 8, 9
}
return count;
}
如果发送了非处理值以外的值,您还可以为结尾添加“默认值”,但在这种情况下,您所做的只是count = count,这是不必要的。祝你好运!
答案 1 :(得分:0)
了解如何使用switch
,case
:
https://www.w3schools.com/js/js_switch.asp
使用switch-case与使用if-else完全不同,我认为你正在模仿它。