如何检查参数['哪个可以变量']是否在数组中?

时间:2016-08-11 21:49:06

标签: javascript arrays

我在这个freecodecamp问题中,我必须添加或减去一个全局变量。条件是

  1. 如果参数是2,3,4,5,6我必须加1。
  2. 如果参数为7,8,9,则不要加/减0.
  3. 如果参数为10,则J,Q,K,A减去1(-1)。
  4. 我已将条件放在函数内的数组中。我不知道如何检查参数/参数是否为字符串。

    这是我的代码。期望输出' 5下注'但是我有一个输出' 4下注'

    var count = 0;
    
    function cc(card) {
    // Only change code below this line
    
    var plusOne = [2,3,4,5,6]; // <- +1 if the argument is here
    var zero = [7,8,9]; // <- 0 if the argument is here
    var negative =[10,'J','Q','K','A']; // <- -1 if the argument is here
    
    if(plusOne.indexOf(card)) {
    count+=1; 
    
    } else if(zero.indexOf(card)) {
    count+=0;
    
    } else if(negative.indexof(card)) {
    count+=-1;
    
    }
    // return count output
    if(count>1) {
    output = count + ' Bet'; //<- global
    return output.toString();
    } else { //<-- if below zero
    output = count + ' Hold';
    return output.toString();
    }
    
    
    // Only change code above this line
    }
    
    // Add/remove calls to test your function.
    // Note: Only the last will display
    cc(2); cc(3); cc(4); cc(5); cc(6); //<-- call
    

    结果javascript compiler

1 个答案:

答案 0 :(得分:0)

indexOf()做什么

indexOf()返回数组中项目的位置,如果它在那里则为整数,如果不是则返回-1。 Documentation

您的错误

当您尝试查找卡片2时,indexOf()会将其作为索引0返回,因为它是数组中的第一个元素。

然后,您的if语句将索引0转换为布尔值,该语句为false。因此,缺少一次添加,结果为4 Bet而不是5 Bet

你应该做什么

检查indexOf()返回-1的元素未找到条件。