Javascript-数组中每个元素的不同条件

Javascript-数组中每个元素的不同条件,javascript,arrays,Javascript,Arrays,我正在制作一个简单的测验,其中有10个问题是通过收音机输入提问的。你能得到的最高分数是10分。每个不正确的答案都是-0.5p,您可以选择“我不想回答这个问题”而不回答 我正在努力计算总分,因为每个正确/不正确/NA答案都有大量的if,所以我想创建一个数组:var CorrectAnswers=[“问题1”,“问题2”,…]并应用一些条件,例如:if(“CorrectAnswers[0]==true])mark=mark+1; 但是if的列表太长了。 有没有办法简化这个过程,让程序检查哪些答案正确

我正在制作一个简单的测验,其中有10个问题是通过
收音机
输入提问的。你能得到的最高分数是10分。每个不正确的答案都是-0.5p,您可以选择“我不想回答这个问题”而不回答

我正在努力计算总分,因为每个正确/不正确/NA答案都有大量的
if
,所以我想创建一个数组:
var CorrectAnswers=[“问题1”,“问题2”,…]
并应用一些条件,例如:
if(“CorrectAnswers[0]==true])mark=mark+1;

但是
if
的列表太长了。 有没有办法简化这个过程,让程序检查哪些答案正确/不正确/NA,并在分数上加1/-0.5/0

它不是用英语写的,但希望你能理解

//P1-2、P2-2、P3-3、P4-2、P5-4、P6-3、P7-4、P8-3、P9-2、P10-2
函数计算(){
//反应纠正
var p1c=document.getElementById(“p1r2”)。已选中;
var p2c=document.getElementById(“p2r2”)。已选中;
var p3c=document.getElementById(“p3r3”)。已选中;
var p4c=document.getElementById(“p4r2”)。已选中;
var p5c=document.getElementById(“p5r4”)。已选中;
var p6c=document.getElementById(“p6r3”)。已选中;
var p7c=document.getElementById(“p7r4”)。已选中;
var p8c=document.getElementById(“p8r3”)。已选中;
var p9c=document.getElementById(“p9r2”)。已选中;
var p10c=document.getElementById(“p10r2”)。已选中;
var RespostScorects=[p1c、p2c、p3c、p4c、p5c、p6c、p7c、p8c、p9c、p10c];
//无竞赛
var p1n=document.getElementById(“p1r0”)。已选中;
var p2n=document.getElementById(“p2r0”)。已选中;
var p3n=document.getElementById(“p3r0”)。已选中;
var p4n=document.getElementById(“p4r0”)。已选中;
var p5n=document.getElementById(“p5r0”)。已选中;
var p6n=document.getElementById(“p6r0”)。已选中;
var p7n=document.getElementById(“p7r0”)。已选中;
var p8n=document.getElementById(“p8r0”)。已选中;
var p9n=document.getElementById(“p9r0”)。已选中;
var p10n=document.getElementById(“p10r0”)。已选中;
var respostsna=[p1n,p2n,p3n,p4n,p5n,p6n,p7n,p8n,p9n,p10n];
//已更正/未更正的计算注释
nota=0;
如果(p1c==true)nota=nota+1;
如果(p2c==true)nota=nota+1;
如果(p3c==true)nota=nota+1;
如果(p4c==true)nota=nota+1;
如果(p5c==true)nota=nota+1;
如果(p6c==true)nota=nota+1;
如果(p7c==true)nota=nota+1;
如果(p8c==true)nota=nota+1;
如果(p9c==true)nota=nota+1;
如果(p10c==true)nota=nota+1;
}
.codiPrograma{
字体系列:“信使”,信使,无衬线;
字号:17px;
}
科迪先生{
字体系列:“信使”,信使,无衬线;
字体大小:15px;
}
波托先生{
宽度:150px;
高度:30px;
字体大小:15px;
保证金:0自动;
显示:块;
}
#试验{
/*显示:无*/
宽度:1000px;
保证金:0自动;
}
#结果{
宽度:250px;
高度:400px;
边框:5px纯黑;
填充:25px;
保证金:0自动;
边缘顶部:30px;
显示:无;
}

Pregunta 1
表达方式的价值是什么?
“23”+12

35
“2312”
“35”
没有不正确的错误 无竞争o
Pregunta 2 表达方式的价值是什么?
“23”12&;!(parseInt(“12px”)13)

正确

未定义
没有不正确的错误 无竞争o
Pregunta 3 是否需要一个条件来保证变量xés unúmero parell i no múmultiple de 3? x%2==0&!x%3==0
x/2=0&!(x/3=0)
x%2==0&!(x%3==0)
x%2=0&!(x%3=0)
无竞争o
Pregunta 4 每一个元素HTML中的每一个元素都包含一个指令吗?
输入type=“text”id=“a”

var x=document.getElementById('a').value;
var a=document.getElementById(“a”).value;
var a=document.getElementById(“a”).value();
不允许在元素HTML中使用大小 无竞争o
Pregunta 5 执行职能的结果如何?
函数pregunta5(){
常量A=5,B=10;
返回B%2-A*B/2;
}

25
-20
不存在任何可能的执行错误
-25
无竞争o
Pregunta 6 程序功能的执行结果是什么?
函数程序a(){
var x=2,y=5;
y=pregunta6(x,y);
alert(“El resultatés”+x);
}
函数pregunta6(x,y){
x=x+y;
返回x;
}

结果5
El resultatés 7
结果2
结果6
无竞争o
普雷蒙塔7 在第5 i 186号中心,没有计算纠正所有不符合标准的行为的功能吗?

函数funcioA(){
var resultat=0;
var i;
for(i=186;i>5;i--)
如果(i%2==1)resultat=resultat+i;
返回resultat;
函数funcioB(){
var resultat=0;
var i;
for(i=5;i=186;i++)
如果(i%2==1)resultat=resultat+i;
返回resultat;
函数funcioC{
var resultat=0;
var i;
for(i=5;i=186;i=i+2)
resultat=resultat+i;
返回resultat;
}
函数funcioD(){
var resultat=0;
var i;
for(i=5;i=186;i++)
如果(i%2=1)resultat=resultat+i;
返回resultat;
} funcioA
函数b
funcioC
功能
无竞争o
Pregunta 8 Donat l'objecte var rectangle={posicio:{x:“3”,y:“5”},amplada:“10”,alçada:“20”}表示对mateix区域的计算修正? amplada*alçada
amplada.矩形*alçada.矩形
矩形.amplada*矩形.alçada
parseInt(“rectangle.amplada”)*parseInt(“rectangle.alçada”)
无竞争o
普雷蒙塔9
score <- 0
for each question
   if correct answer selected then
       score <- score + 1
   else if n/a answer not selected then
       score <- score - 0.5
   end
next question
var nota = 0;
for (var i = 0; i < RespostesCorrectes.length; i++) {
  if (RespostesCorrectes[i]) {
    nota += 1;
  } else if (!RespostesNA[i]) {
    nota -= 0.5;
  }
}
var awnsers = {1,2,4,2...} //Correct awnsers
var userAwnsers = {}

var questions = document.querySelectorAll(".pregunta");

    questions.forEach((elm)=>{
        var userq = elm.querySelectorAll("[type='ratio']");
        userq.forEach((e,i)=>{
            if(e.checked) userAwnser.push(i)
        })
    });
});
<input type="radio" name="pregunta1" id="p1r1" value="-0.5">
<input type="radio" name="pregunta1" id="p1r2" value="1">
<!-- continue adding the correct values! -->
function calcul(){
   var val1 = parseFloat(getRadioVal("pregunta1"));
   var val2 = parseFloat(getRadioVal("pregunta2"));
  //etc
  result = val1 + val2;  // +val3, etc
}

//UPDATE added this function to avoid querySelector
function getRadioVal(name) {
            var val;
            // get list of radio buttons with specified name
            var radios = document.getElementsByName(name);

            // loop through list of radio buttons
            for (var i=0, len=radios.length; i<len; i++) {
                if ( radios[i].checked ) { // radio checked?
                    val = radios[i].value; // if so, hold its value in val
                    break; // and break out of for loop
                }
            }
            return val; // return value of checked radio or undefined if none checked
        }