Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中,如何根据条件返回字符串的不同变体?_Javascript_Forms_If Statement - Fatal编程技术网

在Javascript中,如何根据条件返回字符串的不同变体?

在Javascript中,如何根据条件返回字符串的不同变体?,javascript,forms,if-statement,Javascript,Forms,If Statement,我想根据条件返回不同的字符串。 我有3个问题,每个问题有4个选项可供选择(收音机),每个选项都有一个值。。看起来是这样的: Question Possible Answers Value ----------------------------------------------------------- 1-25 0

我想根据条件返回不同的字符串。 我有3个问题,每个问题有4个选项可供选择(收音机),每个选项都有一个值。。看起来是这样的:

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