После выполнения цикла for
эта функция возвращает один выход (explanation
), а не более одного (на каждой итерации функция должна возвращать другое значение explanation
).
data
- это массив, содержащий информацию о количестве итераций, которые я должен выполнить с циклом for
.
Например: если data = ['city', 'b', 'c']
, функция возвращает только результат, соответствующий строке 'c', без адресации файла, соответствующего строке 'b' ('city', по этой причине мне не нужен)цикл начинается с i = 1
).
Как мне изменить функцию setExplanation
, чтобы переменная explanation
проверялась на каждой итерации?
function setExplanation1(dati, url)
{
var element = document.getElementById('explanation1');
num_totali = dati.length - 1;
num_spiegati = 0;
while (element.firstChild)
{
element.removeChild(element.firstChild);
}
var para = document.createElement("p");
var node = document.createTextNode('Ti suggerisco di provare '+ nome_locale + '.');
para.appendChild(node);
element.appendChild(para);
console.log(dati);
for(var i=0;i < dati.length;i++)
{
var mapReview1 = new Map();
var contesto = dati[i];
// read text from URL location
var urlExplanation = "";
var request = new XMLHttpRequest();
var path = "js/"+conf_selected+"/"+contesto+"_1phrase.csv";
request.open('GET', path);
request.send();
request.onreadystatechange = function()
{
console.log(i);
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader('Content-Type');
urlExplanation = request.responseText;
}
var line = urlExplanation.toString().split('\n');
for (var j = 1; j < line.length; j++)
{
let url = line[j].split(';')[0];
let frase = line[j].split(';')[1];
mapReview1.set(url,frase);
}
for (var key of mapReview1.keys())
{
if(key === url) {
let explanation1 = mapReview1.get(key);
console.log(explanation1);
num_spiegati = num_spiegati+1;
console.log(num_spiegati);
let para1 = document.createElement("p");
let node1 = document.createTextNode('E’ un locale adatto per ' + getStringContext(contesto) + ' per questo motivo: "'+ explanation1 +'"');
para1.appendChild(node1);
element.appendChild(para1);
}
}
}
}
console.log('totali : '+ num_totali);
console.log('spiegati : '+ num_spiegati);
}