Filtrar selecciones en d3.js II

En el anterior articulo vimos como construir el selector para poder ver los contratos que cumplan mas de un filtro.

En ese post vamos a ver como utilizando el metodo d3.filter() de d3.js y como podemos saber los centros de gasto que tienen al menos un contrato con una empresa, una vez que ella haya sido seleccionada.

Si hemos realizado una seleccion con d3.selectAll() que la llamemos select:

var select = d3.selectAll(‘selector’);

Luego podemos filtrar todavia mas :

select.filter(‘nuevo_selector’);

Esa funcionalidad me ha ayudado repasar con un .each() todos los centros de gasto del ayuntamiento cuando se elige una empresa. En cada iteración, se verifica si el .filter(‘centro_de_gasto’) da un array vacio o no. Si no esta vacio entonces con .style(‘background-color’,’yellow’) se cambia el fondo del boton avisando asi que tiene contenido.

Tambien el fondo se pone gris cuando se de-selecciona la empresa.