我正在使用Selenium和nodejs遍歷一個html表,並將一個字符串從數組匹配到表格單元格中的字符串。Javascript:增量計數器內循環變量
我的數組可能是[「Name」,「Address1」,「Address2」,「Address3」,...],並且tr [1]中的值將嘗試與Arr [0],tr [2 ]與Arr [1]等
該html表格將有一個數組中的每個項目的行,但如果沒有數據,例如Address2那麼將不會出現。
在這種情況下,tr [3]會發現它不能與Arr [3]匹配。而不是移動到tr [4],我想看看tr [3]是否與Arr [4]匹配,然後是Arr [5]等。表中的項目總是與數組中項目的順序相同,所以我不需要任何「不匹配」的數組項目。
我已經發布了整個函數以防它是相關的,但這個問題看起來很簡單,就是我無法讓「i = i-1」將新值帶入下一個循環迭代。
我已經證明我進入了Else部分,並且i-1的值與我期望的那樣。
var retrieveData = function retrieveData(Arr){
j = 0
driver.findElements(webdriver.By.xpath("//*[@class='table-container']")).then (function(rows){
rowCount = rows.length;
console.log("Row count = " + rowCount);
}).then (function(fn){
for (i = 1;i < rowCount + 1; i++){
(function(i){
var element = driver.findElement(webdriver.By.xpath("//div[@class='table-container']["+i+"]/div/strong/a"));
element.getText().then(function(Type){
var typefromArray = String(Arr[j].split(':')[0]);
if (Type == typefromArray){
// Do something
j = j + 1;
} else {
// Do something
i = i - 1 // My problem looks to be here, but may be in the transfer of this back up to the beginning of the loop
j = j + 1;
}
});
})(i);
};
});
};
module.exports.retrieveData = retrieveData;
你有'I = I - 1'在IIFE內部。你也可以使用'i - '和'j ++'。 –
嗨,感謝您的快速響應!如果字符串不匹配,我只想減少計數器(即If語句返回False)。我怎樣才能讓i = i-1(或i--)在Else之外? – user7540600
你在'(函數(i){'聲明中隱藏了'i'的範圍。 – Sunshine