爲什麼在JavaScript中會很早終止for循環?出於某種原因,我的外循環在第一次重複之後終止。我是JavaScript新手,但期望像Java這樣的工作。JavaScript For Loop提早破解
function check(){
var elements = document.getElementById('fields').children;
var filteredMolecules = molecules;
console.log(elements.length);
for (i = 0; i < elements.length; i++) {
console.log(elements[i].id)
filterMolecules(filteredMolecules, elements[i].id, 0, 10);
}
}
function filterMolecules(molecules, parameter, lower, upper){
console.log('filtering');
var filteredMolecules = [];
for (i=0;i<molecules.length;i++){
var value = molecules[i].val()[parameter];
filteredMolecules.push(molecules[i]);
}
molecules=filteredMolecules;
}
在檢查(),I循環通過包含22項所示由第一的console.log(elements.length)元素。如果我刪除方法filterMolecules(...),則會記錄所有22個ID。但是,對於代碼,僅記錄第一個ID。
我認爲應該運行elements.length次數的filterMolecules方法會導致outer for循環不起作用。有人能解釋爲什麼會發生這種情況嗎?如果相關,filterMolecules(...)會使用分子[i] .val()[參數]從Google Firebase中檢索數據。此外,這兩種方法使用全局變量的分子(第3行和第14行)
'分子= filteredMolecules;'出現的第一個參數的值被設定爲'filterMolecules'功能。這是打算?雖然你不顯示它,但「check」函數中的代碼將表明「分子」也處於更高的範圍。 –