目前,我有一个人员列表和一个映射到每个人的购物项目列表。例如,乔买了苹果和葡萄。
为了获得这些数据,每个人都必须进入并选择他们是否买了东西。所以我会问那个人“你买的东西?(苹果,葡萄等)”,还有一个单选按钮选项为“是”,“否”。
如果鲍勃对苹果说“是”,对葡萄说“不”,我想要鲍勃的整体答案。答案是“是”,因为他确实买了东西。
到目前为止,我有这段代码:
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;
};
我无法将此代码与苹果和葡萄的价值观以及每个人联系起来。有人可以帮忙吗?提前谢谢!
答案 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.
}