Skip to content

Instantly share code, notes, and snippets.

@kinatzu
Created February 6, 2020 08:48
Show Gist options
  • Save kinatzu/01e304c16437be713b0e2dc5c2eb2194 to your computer and use it in GitHub Desktop.
Save kinatzu/01e304c16437be713b0e2dc5c2eb2194 to your computer and use it in GitHub Desktop.
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