javascript - Javascript 条件可以在数字之间吗?

标签 javascript if-statement conditional-statements

我希望根据此表确定一个类别: Table

我有一个 if 语句,它似乎适用于某些条件,但不适用于其他条件。 R、P 和 Q 有效,但数字之间的条件未返回正确的类别。

如果语句:

function getCategory(featureFunctionalScore, featureDysfunctionalScore) {
    if (featureFunctionalScore == 4 && featureDysfunctionalScore == -2) {
        return "Performance";
    } else if (featureFunctionalScore == 4 && featureDysfunctionalScore <= -1 && featureDysfunctionalScore > 4) {
        return "Attractive"
    } else if (featureFunctionalScore <= -1 && featureFunctionalScore > 4 && featureDysfunctionalScore == 4) {
        return "Expected"
    } else if ((featureFunctionalScore >= -2 && featureFunctionalScore <= 2 && featureDysfunctionalScore == -2) || (featureFunctionalScore == -2 && featureDysfunctionalScore >= -2 && featureDysfunctionalScore <= 2)) {
        return "Reverse"
    } else if ((featureFunctionalScore == 4 && featureDysfunctionalScore == -2) || (featureFunctionalScore == 2 && featureDysfunctionalScore == -1) || (featureFunctionalScore == -1 && featureDysfunctionalScore == 2) || (featureFunctionalScore == -2 && featureDysfunctionalScore == 4)) {
        return "Questionable"
    } else {
        return "Indifferent"
    };
};

我错过了什么重要的东西吗?

更新 此语句在 Excel 中有效,但我正在努力让它在 JS 中工作:

=IF(OR(AND(C3 <= 2, B3 <= -1), AND(C3 <= -1, B3 <= 2)), "R", IF(AND(C3 <= 2, C3 >= -1, B3 <= 2, B3 >= -1), "I", IF(AND(C3 >= 2,B3 >= -1, B3 <= 2),"A", IF(AND(C3 <= 2, B3 <= 4, B3 >= 2), "M", IF(AND(C3 >= 2, B3 >= 2), "P", "Q")))))

最佳答案

这应该是您要查找的内容。我确信它可以被优化,但它确实有效。 JSFiddle:https://jsfiddle.net/yxb7tr9n/

  function getCategory(x,y){
    var answer = -999;

    if (x == 4 && y == 4){
        answer = "p";
    }else if([-1,0,2].indexOf(x) >= 0 && y == 4){
        answer = "A";    
    }else if((x == -2 && y == 4) || (x == -1 && y == 2) || (x == 4, y == -2)){
        answer = "Q";    
    }else if(x == 4 && [-1,0,2].indexOf(y) >= 0) {
        answer = "M";        
    }else if((x == -1 && [-1,0].indexOf(y) >= 0) || (x == 0 && [-1,0,2].indexOf(y) >= 0) || (x == 2 && [0,2].indexOf(y) >= 0)){
        answer = "I";    
    }else if ((x == -2 && [-2,-1,0,2].indexOf(y) >= 0) || (y == -2 && [-2,-1,0,2].indexOf(x) >= 0)) {
        answer = "R";
    }else{
        answer = "??";
    }

    return answer;
  }

更新:使用坐标映射系统的替代版本。 JSFiddle:https://jsfiddle.net/g2d6p4rL/4/

  function indexOfCustom (parentArray, searchElement) {
    for ( var i = 0; i < parentArray.length; i++ ) {
      if ( parentArray[i][0] == searchElement[0] && parentArray[i][1] == searchElement[1] ) {
        return i;
      }
    }
    return -1;
  }

  function getCategory2(x,y){    
    var p = [[4,4]];
    var q = [[-2,4],[-1,2],[2,-1],[4,-2]];
    var a = [[-1,4],[0,4],[2,4]];
    var m = [[4,2],[4,0],[4,-1]];
    var i = [[0,2],[2,2],[-1,0],[0,0],[2,0],[-1,-1],[0,-1]];
    var r = [[-2,2],[-2,0],[-2,-1],[-2,-2],[-1,-2],[0,-2],[2,-2]];

    coord = [x,y];

    if (indexOfCustom(p,coord) >= 0){
        return "p";
    } else if (indexOfCustom(q,coord) >= 0){
        return "Q";
    } else if (indexOfCustom(a,coord) >= 0){
        return "A";
    } else if (indexOfCustom(m,coord) >= 0){
        return "M";
    } else if (indexOfCustom(i,coord) >= 0){
        return "I";
    } else if (indexOfCustom(r,coord) >= 0){
        return "R";
    }else{
        return "??";
    }
  }

所有答案的输出:

[-2,-2] = R
[-2,-1] = R
[-2,0] = R
[-2,2] = R
[-2,4] = Q
[-1,-2] = R
[-1,-1] = I
[-1,0] = I
[-1,2] = Q
[-1,4] = A
[0,-2] = R
[0,-1] = I
[0,0] = I
[0,2] = I
[0,4] = A
[2,-2] = R
[2,-1] = Q
[2,0] = I
[2,2] = I
[2,4] = A
[4,-2] = Q
[4,-1] = M
[4,0] = M
[4,2] = M
[4,4] = p

关于javascript - Javascript 条件可以在数字之间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780276/

相关文章:

有条件地 hibernate 子标准

c - 分析 &、&& 和 |对于这个代码?

scheme - 小阴谋家 : What is a function or argument's structure?

javascript - 如何构建动画正弦波

javascript - 少于 5 张幻灯片时,Swiper slider 无法正常工作

javascript - jQuery 虚拟键盘正在保存先前输入的值

javascript - 拖放标签列表元素

javascript - 调用与局部变量同名的函数

r - 处理同一日期发生的值

python - 将多个 if 语句放入 python pandas 的一个 if 语句中