JS函数循环按预期加倍
JS function looping double as expected
这是 Javascript 我正在做的一些测验的代码。
在我的例子中 table.length = 2,并且函数在第一个 table 和第二个参数中重复 2 次。
但是为什么命令在控制台中显示了 4 次?
console.log("Hello");
.
function start(){
var brojac =0;
var table = document.getElementsByTagName("table");
for (i =0; i<table.length ; i++){
jednoPitanje(i);
brojac += parseInt(jednoPitanje(i))
}
console.log("Sakupili ste ukupno " + brojac + " bodova");
}
function jednoPitanje(x) {
var odgovori ="";
var table = document.getElementsByTagName("table");
var tableN = table[x];
var input = tableN.getElementsByTagName("input")
var brojInputa = tableN.getElementsByTagName("input").length;
//Uzima bodove,kategoriju i index tocnih odgovora
var bodovi =tableN.classList[2];
var kategorija =tableN.classList[1];
var tocni = tableN.classList[0];
console.log("Hello");
//Iteracija kroz sve checkboxsove u tablici
for (j =0; j<brojInputa ; j++){
if(input[j].checked==true){
odgovori += tableN.getElementsByTagName("input")[j].value;
}
}
if(odgovori == tocni){
}
else{bodovi = 0;}
return bodovi;
}
您正在函数 jednoPitanje()
中调用 console.log("Hello");
。您在循环中调用此函数两次:
jednoPitanje(i); // <-- this cause console.log() to run
brojac += parseInt(jednoPitanje(i)) // <-- this also causes the console.log()
并且因为你的循环 运行s 两次它打印四次。
目前尚不清楚您是否需要 两次 运行 函数,但如果不需要,您可以删除第一个调用:
for (i =0; i<table.length ; i++){
brojac += parseInt(jednoPitanje(i))
}
或者如果您更喜欢清晰度:
for (i =0; i<table.length ; i++){
var bodovi = jednoPitanje(i);
brojac += parseInt(bodovi)
}
这是 Javascript 我正在做的一些测验的代码。 在我的例子中 table.length = 2,并且函数在第一个 table 和第二个参数中重复 2 次。
但是为什么命令在控制台中显示了 4 次?
console.log("Hello");
.
function start(){
var brojac =0;
var table = document.getElementsByTagName("table");
for (i =0; i<table.length ; i++){
jednoPitanje(i);
brojac += parseInt(jednoPitanje(i))
}
console.log("Sakupili ste ukupno " + brojac + " bodova");
}
function jednoPitanje(x) {
var odgovori ="";
var table = document.getElementsByTagName("table");
var tableN = table[x];
var input = tableN.getElementsByTagName("input")
var brojInputa = tableN.getElementsByTagName("input").length;
//Uzima bodove,kategoriju i index tocnih odgovora
var bodovi =tableN.classList[2];
var kategorija =tableN.classList[1];
var tocni = tableN.classList[0];
console.log("Hello");
//Iteracija kroz sve checkboxsove u tablici
for (j =0; j<brojInputa ; j++){
if(input[j].checked==true){
odgovori += tableN.getElementsByTagName("input")[j].value;
}
}
if(odgovori == tocni){
}
else{bodovi = 0;}
return bodovi;
}
您正在函数 jednoPitanje()
中调用 console.log("Hello");
。您在循环中调用此函数两次:
jednoPitanje(i); // <-- this cause console.log() to run
brojac += parseInt(jednoPitanje(i)) // <-- this also causes the console.log()
并且因为你的循环 运行s 两次它打印四次。
目前尚不清楚您是否需要 两次 运行 函数,但如果不需要,您可以删除第一个调用:
for (i =0; i<table.length ; i++){
brojac += parseInt(jednoPitanje(i))
}
或者如果您更喜欢清晰度:
for (i =0; i<table.length ; i++){
var bodovi = jednoPitanje(i);
brojac += parseInt(bodovi)
}