-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex-JMRL.js
37 lines (32 loc) · 1.32 KB
/
index-JMRL.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
export { averageLatitude2 }
// FUNCIONES PARA LEER Y PARSEAR EL CSV RESPECTIVAMENTE
const { readFileSync } = require('fs');
const { parse } = require('csv-parse/sync');
//LEEMOS EL CSV
let fileContent = readFileSync('input-JMRL.csv', 'utf-8');
//PARSEAMOS EL CONTENIDO DEL CSV A UNA LISTA DE OBJETOS
let csvContent = parse(fileContent, {
columns: true,
cast: (value, context) => {
if (context.column == 'creation_year') return Number(value)
if (context.column == 'id') return Number(value)
if (context.column == 'portalId') return Number(value)
if (context.column == 'postal_code') return Number(value)
if (context.column == 'latitude') return Number(value)
if (context.column == 'length') return Number(value)
return value
}
});
//FUNCIÓN PARA HACER LA MEDIA DE LAS LATITUDES
function averageLatitude2(){
let sum = 0;
//HACEMOS UN ARRAY SOLO CON LAS LATITUDES (MAP) Y SUMAMOS TODOS SUS ELEMENTOS (REDUCE)
let lat = csvContent.map((x) => x.latitude)
.reduce((sum, value) => sum + value, sum);
//DEVOLVEMOS LA MEDIA
return lat/csvContent.length;
}
//IMPRIMIMOS POR PANTALLA LA FUNCIÓN PARA COMPROBAR QUE FUNCIONA
console.log(averageLatitude2());