JavaScript基于分数的总体结果

时间:2015-09-14 21:56:04

标签: javascript widget max

目前,我有一个人员列表和一个映射到每个人的购物项目列表。例如,乔买了苹果和葡萄。

为了获得这些数据,每个人都必须进入并选择他们是否买了东西。所以我会问那个人“你买的东西?(苹果,葡萄等)”,还有一个单选按钮选项为“是”,“否”。

如果鲍勃对苹果说“是”,对葡萄说“不”,我想要鲍勃的整体答案。答案是“是”,因为他确实买了东西。

到目前为止,我有这段代码:

exports.getOverallAnswer = function(boughtSomething){
  var answer = ["Yes", "No"];
  var scores = [5,4];
  var highScore = Math.max.apply(Math,scores);
  var scoreIndex = scores.indexOf(highScore);
  var answerName = answer[scoreIndex];
  return answer;
  };

我无法将此代码与苹果和葡萄的价值观以及每个人联系起来。有人可以帮忙吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

理想情况下,这是布尔值在这里返回true或false的非常有用的地方。

您可以让person对象进行多次检查。

例如

Bob.boughtGrapes = false;
Bob.boughtApples = true;

之后,你可以使用一个函数来检查一个人对象是否买了东西。

function boughtSomething(Person person) {
     $test = false;
     if (person.boughtGrapes === true)
          $test = true;
     if (person.boughtApple === true)
          $test = true;
     ......
     return $test;
}

编辑: 选择之间有两个相关选项。 1)数值:

Bob.boughtGrapes = 2;
//1 = "Yes" and 2 = "No" and 3 = "Maybe" and etc.

2)字符串值:

Bob.boughtGrapes = "Yes";
Bob.boughtApples = "No";
Bob.boughtPears = "Maybe";

我建议不要使用字符串值的原因是因为拼写错误非常容易,并且花了很长时间试图弄清楚程序无法正常工作的原因。

现在,您可以在此处决定是否可能触发“是的,这个人已经买了东西。”

 function boughtSomething(Person person) {
     $test = "No"; //Always start with a negative answer.
     if (person.boughtGrapes === "Yes" || person.boughtGrapes === "Maybe")
          $test = "Yes";
     if (person.boughtApples === "Yes" || person.boughtApples === "Maybe")
          $test = "Yes";
     ......
     return $test; //returns "Yes" on success, "No" otherwise.
}