在Javascript中,如何根据条件返回字符串的不同变体?
我想根据条件返回不同的字符串。 我有3个问题,每个问题有4个选项可供选择(收音机),每个选项都有一个值。。看起来是这样的:在Javascript中,如何根据条件返回字符串的不同变体?,javascript,forms,if-statement,Javascript,Forms,If Statement,我想根据条件返回不同的字符串。 我有3个问题,每个问题有4个选项可供选择(收音机),每个选项都有一个值。。看起来是这样的: Question Possible Answers Value ----------------------------------------------------------- 1-25 0
Question Possible Answers Value
-----------------------------------------------------------
1-25 0
26-40 5
question 1 41-60 8
60+ 10
-----------------------------------------------------------
1-25 0
26-40 5
question 2 41-60 10
60+ 10
-----------------------------------------------------------
1-25 0
26-40 5
question 3 41-60 10
60+ 15
-----------------------------------------------------------
我有每个问题的值,现在我想返回一个自定义字符串,如果值的总和大于25。在我要显示的字符串中,问题的值是否大于或等于10
例如:用户为问题1选择了选项2(值=5),为问题2选择了选项3(值=10),为问题3选择了选项4(值=15)
我的字符串是:最高值在问题2和问题3中
以下是我的实验:
if (total_Value > 25) {
switch (true) {
case (question1_Value >= 10 && question2_Value >= 10 && question3_Value < 10)
return "Highest values are in question1 and question2";
case (question1_Value >= 10 && question2_Value < 10 && question3_Value >= 10):
return "Highest values are in question1 and question3";
}
}
if(总值>25){
开关(真){
案例(问题1\u值>=10和问题2\u值>=10和问题3\u值<10)
return“最高值在问题1和问题2中”;
案例(问题1\u值>=10和问题2\u值<10和问题3\u值>=10):
return“最高值在问题1和问题3中”;
}
}
等等。。我基本上检查了所有的可能性,并相应地修改了报税表,但这不是最好的,尤其是如果我有5个问题的话
我希望在不使用大量switch语句或if语句的情况下执行此操作。请帮忙。我希望我的问题有意义。谢谢 当人们刚开始学习编程时,这是一个典型的错误。您尝试过多地使用现有的逻辑,最终得到一千个if/else/else if,开关语句,while循环,以及for循环。你尤其可以看到,新的人试图实现经典的tic-tac-toe游戏,但这是另一个例子 问题不在于你想做什么,而在于你如何管理你的数据 每个问题的值应该而不是存储在各个变量中,至少在您试图计算最高值时是这样。这些数据相互关联。我们需要用代码来说明这一点。最好的方法是将信息存储在数组中,或者存储在对象中 你也需要考虑你在寻找什么。您需要一个输出,指示哪些问题(可能是两个)具有最高值。这一切都很好,但这意味着我们需要在某种程度上传递什么问题伴随着什么价值。我们可以通过参数的顺序(使用数组)或与数据一起存储的显式标签(使用对象)来确定这一点,该标签告诉您的程序它链接到什么问题,或者将它们组合在一起,如下所示 我们使用
Array.prototype.reduce
获得最高分数。我们允许一个将忽略奇异值的排除参数。当我们用这个排除参数调用函数时,我们可以得到第二高的值
我们根据数组中的索引(+1,因为索引从0开始)和一个值返回一个问题编号。它们作为返回对象的属性组合在一起。这使得获得最高值和第二高值,并在控制台或屏幕上显示它们变得很容易
var q1=10,
q2=10,
q3=50,
值_arr=[q1、q2、q3],
最大值=最高值,
max2=最高值(最大值);
log(“问题“+max.question+”和问题“+max2.question+”是最高的。”);
函数最高值(值_数组,排除=null){
返回值\u数组.reduce(函数(max,v,currentIndex){
如果(v>max.value&&v!=排除){
最大值=v;
最大问题=当前索引+1
}
返回最大值;
}, {
问题:0,,
数值:0
});
};代码>当人们刚开始学习编程时,这是一个典型的错误。您尝试过多地使用现有的逻辑,最终得到一千个if/else/else if,开关语句,while循环,以及for循环。你尤其可以看到,新的人试图实现经典的tic-tac-toe游戏,但这是另一个例子
问题不在于你想做什么,而在于你如何管理你的数据
每个问题的值应该而不是存储在各个变量中,至少在您试图计算最高值时是这样。这些数据相互关联。我们需要用代码来说明这一点。最好的方法是将信息存储在数组中,或者存储在对象中
你也需要考虑你在寻找什么。您需要一个输出,指示哪些问题(可能是两个)具有最高值。这一切都很好,但这意味着我们需要在某种程度上传递什么问题伴随着什么价值。我们可以通过参数的顺序(使用数组)或与数据一起存储的显式标签(使用对象)来确定这一点,该标签告诉您的程序它链接到什么问题,或者将它们组合在一起,如下所示
我们使用Array.prototype.reduce
获得最高分数。我们允许一个将忽略奇异值的排除参数。当我们用这个排除参数调用函数时,我们可以得到第二高的值
我们根据数组中的索引(+1,因为索引从0开始)和一个值返回一个问题编号。它们作为返回对象的属性组合在一起。这使得获得最高值和第二高值,并在控制台或屏幕上显示它们变得很容易
var q1=10,
q2=10,
q3=50,
值_arr=[q1、q2、q3],
最大值=最高值,
max2=最高值(最大值);
log(“问题“+max.question+”和问题“+max2.question+”是最高的。”);
函数最高值(值_数组,排除=null){
返回值\u数组.reduce(函数(max,v,cu