更轻松的parseint方法



我正在研究该页面,该页面将计算数据

如果我使用 document.querySelector("[name="st1"]:checked").value;是字符串,所以我必须做

var res1 = document.querySelector("[name="st1"]:checked").value;
var res1_p = parseInt(res1);

但是考虑到我有100个问题,需要大量时间。

我想知道我可能会做些什么来改善/加快流程?

下面的完整代码

var res1 = document.querySelector("[name="st1"]:checked").value;
var res1_p = parseInt(res1);
var res2 = document.querySelector("[name="st2"]:checked").value;
var res2_p = parseInt(res2);
var res3 = document.querySelector("[name="st3"]:checked").value;
var res3_p = parseInt(res3);
var res4 = document.querySelector("[name="st4"]:checked").value;
var res4_p = parseInt(res4);
var res5 = document.querySelector("[name="st5"]:checked").value;
var res5_p = parseInt(res5);
var res6 = document.querySelector("[name="st6"]:checked").value;
var res6_p = parseInt(res6);
var res7 = document.querySelector("[name="st7"]:checked").value;
var res7_p = parseInt(res7);
var res8 = document.querySelector("[name="st8"]:checked").value;
var res8_p = parseInt(res8);
var res9 = document.querySelector("[name="st9"]:checked").value;
var res9_p = parseInt(res9);
var res10 = document.querySelector("[name="st10"]:checked").value;
var res10_p = parseInt(res10);
var res11 = document.querySelector("[name="st11"]:checked").value;
var res11_p = parseInt(res11);
var res12 = document.querySelector("[name="st12"]:checked").value;
var res12_p = parseInt(res12);
var res13 = document.querySelector("[name="st13"]:checked").value;
var res13_p = parseInt(res13);
var res14 = document.querySelector("[name="st14"]:checked").value;
var res14_p = parseInt(res14);
var res15 = document.querySelector("[name="st15"]:checked").value;
var res15_p = parseInt(res15);
var res16 = document.querySelector("[name="st16"]:checked").value;
var res16_p = parseInt(res16);
var res17 = document.querySelector("[name="st17"]:checked").value;
var res17_p = parseInt(res17);
var res18 = document.querySelector("[name="st18"]:checked").value;
var res18_p = parseInt(res18);
var res19 = document.querySelector("[name="st19"]:checked").value;
var res19_p = parseInt(res19);
var res20 = document.querySelector("[name="st20"]:checked").value;
var res20_p = parseInt(res20);
var res21 = document.querySelector("[name="st21"]:checked").value;
var res21_p = parseInt(res21);
// Calculate 
var BDI_score = res1_p + res2_p + res3_p + res4_p + res5_p + res6_p + res7_p + res8_p + res9_p + res10_p + res11_p + res12_p + res13_p + res14_p + res15_p + res16_p + res17_p + res18_p + res19_p + res20_p + res21_p;

如果您不需要存储单个值:

var BDI_score = 0;
for(var i = 1; i <= 21; i++) {
  var res = document.querySelector(`[name="st${i}"]:checked`).value;
  BDI_score += parseInt(res);
}

您可以使用数组数据结构存储所有值,然后在数组上循环以将值解析为整数并总和。

var resArray = [];
var BDI_score = 0;
for(var i=1; i<=22; i++){
  var elem = document.querySelector("[name="st"+i+""]:checked").value;
  resArray.push(parseInt(elem));
  BDI_score += resArray[i];
}

将解析值存储在resArray中将通过访问数组的索引来帮助您获取相应的name的值。例如:name = st14的值始终在索引13中(比数字14少(,name = st16始终在索引15中,等等。

如果您需要以后需要将结果存储在数组中,并在for循环中进行动态。

+varvar转换为Number,就像parseInt(var)一样。

var arr = [];
var sum = 0;
for(var i=1; i<=100; i++){
  arr[i] = +document.querySelector("[name="st"+i+""]:checked").value;
  sum+= arr[i];
}

最新更新