Показываю мне только один выход - PullRequest
0 голосов
/ 30 июня 2019

После выполнения цикла 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...