Skip to content
Snippets Groups Projects
index.js 1.23 KiB
async function start() {
	let res = await fetch("./cases.csv");
	let text = await res.text();
	// console.log(text);
	let table = text.split('\n');
	let header = table[0].split(',');
	let rows = table.splice(1).map(row => {
		let r = row.split(',');
		let _r = {};
		header.forEach((col, idx) => {
			_r[col] = r[idx];
		});
		return _r;
	});
	console.log(header);
	console.log(rows);
	let t = new tracker(rows);
	console.log(t);
	createChart();
}


function createChart() {
	let myChart = new Chart("chart")
}




class tracker {

	constructor(data) {
		this.countries = {};
		for (let row of data) {
			if (!(row.countryterritoryCode in this.countries)) {
				this.countries[row.countryterritoryCode] = new country(row.countriesAndTerritories, row.countryterritoryCode, row.geoId);
			}
			this.countries[row.countryterritoryCode].addCases(row.dateRep, row.cases, row.deaths);
		}
	}
}

class country {
	constructor(name, terr_code, geoId) {
		this.name = name;
		this.territory_code = terr_code;
		this.geoId = geoId;
		this.cases = {};
	}

	addCases(date, cases, deaths) {
		let d = date.split('/');
		this.cases[`${d[2]}/${d[1]}/${d[0]}`] = {
			cases: cases,
			deaths: deaths,
		}
	}

	getCases() {
		return this.cases;
	}
}



window.onload = start;