Created
February 6, 2020 08:48
-
-
Save kinatzu/01e304c16437be713b0e2dc5c2eb2194 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const members = data.results[0].members; //Constante para entrar en el objeto del JSON | |
var tbody = document.getElementById("thestatisticsobject"); //getElementById para introducir cada "id" con ese nombre en el HTML. En este caso en las tablas(tbody) | |
var tbody = document.getElementById("thestatisticsobject1"); | |
var numbmissed = document.getElementById("numbermissed"); //Id en las tablas con el % de votos missed | |
var congress = { //Objeto creado de 0 para almacenar los resultados de cada congresista. Se pone 0 en todos ellos ya que dicho valor se modificará en base a la función o cálculo que hagamos. Son contenedores para almacenar información | |
dem: 0, | |
rep: 0, | |
ind: 0, | |
porcentrep: 0, | |
porcentdem: 0, | |
porcentind: 0, | |
porcentmissed: 0, | |
} | |
var valores = ["first_name", "Number of Missed Votes", "%Missed"]; //Variable que toma estos datos del JSON | |
var nav = ["url"]; //Variable que toma la url del member del JSON | |
var lname = ["middle_name", "last_name"]; //Variable que toma estos datos del JSON | |
//INICIO DE FUNCIÓN | |
function party(array) | |
for (var i = 0; i < members.length; i++) { //Loop que recorre todos los miembros del JSON | |
var senate = members[i]; //Creamos variable nueva (renombramos) que lo que hace es entrar dentro de todos los atributos de cada miembro members[i]. Con members 'seleccionamos' cada miembro y con la [i] del loop entramos dentro de el para que recorra todos los atributos de cada uno de ellos. | |
if (senate.party == "R" && senate.votes_with_party_pct != null) { //SI, en el apartado party (si ponemos .party entramos en ese atributo) del miembro (recuerda que senate entra dentro d todos los atributos) es igual a R y el votes_with_party_pct arroja un valor QUE NO SEA/O CONTRARIO (!=) a null (es decir, que haya cualquier otro valor, sea el que sea menos null) | |
congress.rep++; //si se cumple lo de arriba (primera parte, antes del &&) le añades al objeto congress, atributo rep (Republicano) el valor obtenido (con el ++ sumas a ese contenedor de UNO en UNO) | |
congress.porcentrep += senate.votes_with_party_pct; //Añade al objeto congress, atributo procentrep LA SUMA del valor obtenido en el if votes_with_party_pct. No se puede poner ++ ya que buscas añadir un valor y no de uno en uno. | |
} else if (senate.party == "D" && senate.votes_with_party_pct !=null); { //Idem a lo de arriba pero para Democratas | |
congress.dem++; | |
congress.porcentdem += senate.votes_with_party_pct; | |
} else { //no ponemos las condiciones d arriba (no hace falta) ya que el ELSE nos da el resultante. | |
congress.ind++; | |
congress.porcentind += senate.votes_with_party_pct; | |
} | |
} | |
} | |
party(members); //EJECUTAMOS FUNCIÓN ANTERIOR | |
//FUNCIÓN PUT PARA AÑADIR LOS VALORES A CADA CELDA DE LA TABLA | |
function put(put) | |
var total = congress.rep + congress.ind + congress.dem; //variable nueva con suma todos los miembros (rep + dem + ind) | |
var totalporcent = congress.porcentrep + congress.porcentind + congress.porcentdem; //variable nueva con suma totales porcentajes miembros | |
var repub = document.getElementById("repub"); //variable nueva creación en id html para republicanos (creamos id repub y añadimos a la tabla) | |
repub.insertCell().innerHTML = congress.rep; //insertCell crea una td automáticamente. Con congress.rep entramos en objeto congress, atributo rep y sacamos los datos obtenidos arriba. | |
repub.insertCell().innerHTML = (congress.procentrep / congress.rep).toFixed(2) + "%"; //insertamos en el HTM division porcentaje rep y miembros rep del objeto congress para obtener % Voted w/ Party y asignar en su columna (td) correspondiente. toFixed(2) añade dos decimales. | |
var ind = document.getElementById("ind"); //Variable insertar elemento en id para Independientes | |
ind.insertCell().innerHTML = congress.ind; //inserta en el td en HTML valores obtenidos en el objeto congress y atributo ind. | |
ind.insertCell().innerHTML = Math.round(congress.porcentind / congress.id).toFixed(2) + "%"; //igual que hicimos con republicanos pero con Math.round redondeamos al siguiente número en base a los decimales. | |
var demo = document.getElementById("demo"); | |
ind.insertCell().innerHTML = congress.dem; | |
demo.insertCell().innerHTML = Math.round(congress.porcentdem / congress.dem).toFixed(2) + "%"; | |
var tot = document.getElementById("tot"); //variable para Totales | |
tot.insertCell().innerHTML = congress.rep + congress.ind + congress.dem; //introduce en td el total (suma de los 3 tipos d miembros) | |
tot.insertCell().innerHTML = Math.round(totalporcent / total).toFixed(2) + "%"; //inserta en td división total porcentaje entre total miembros para obtener diferencia. | |
} | |
put(put); //EJECUCIÓN FUNCIÓN | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment