来自同步异步:Javascript

时间:2018-09-24 11:38:54

标签: javascript html

我在javascript中有这4种方法,函数AllMuseums返回一个数组。

function contains(listaValori, anno, mese) {
        for (j=0; j<listaValori.length; j++) {
            if (listaValori[j].Anno==anno) {
                if(listaValori[j].Mese==mese) {
                    return true;
                }
            }
        }
        return false;
    }


    function processing(data, anno, mese) {
        var visitatori = 0;
        for (k=0; k<data.length; k++) {
            if ((data[k].Anno == anno) && (data[k].Mese == mese)) {
                visitatori += parseInt(data[k].Visitatori);
            }
        }
        return visitatori;
    }


    function filtraggio(data) {
        var map = {};
        array_filtrato = [];
        date_fatte = [];

        for (i=0; i<data.length; i++) {
            if (contains(date_fatte, data[i].Anno, data[i].Mese)==false) {
                var mese_anno = new String("");
                var map = {};
                mese = data[i].Mese;
                anno = data[i].Anno;
                mese_anno = mese + " " + data[i].Anno;
                map["date"] = mese_anno;
                visitatori = processing(data, anno, mese);
                map["price"] = visitatori;
                array_filtrato.push(map);
                date_fatte.push(data[i]);
            }
        }
        return array_filtrato;
    }


    async function allMuseums() {
        let nomeFile = "dati_musei.csv";
        let data = await d3.dsv(";", nomeFile, function (d) {
            return {
                Museo: d.Museo,
                Ingresso: d.Ingresso,
                Anno: d.Anno,
                Mese: d.Mese,
                Visitatori: d.Visitatori
            };
        });
        return filtraggio(data);
    };

但是在这4种方法之后,我还有另一部分代码和变量'datax'。我希望“ datax”具有AllMuseum()的数组:

 allMuseums().then(data => {
        let datax = data;
        console.log(datax);
    });

但是以这种方式,我将不得不将所有其余代码放入内部,并且由于我还拥有其他方法(例如AllMuseums()),因此这将迫使我复制代码。

0 个答案:

没有答案