Estoy tratando sin suerte de llenar un rect específico de muchos en D3 con una función dentro del atributo de estilo, pero solo llena todos los rect con #fff (blanco).
Quiero llenar un rect si el obj de ese rect (de los datos) está dentro de la matriz monitor.details.
.style("fill", function (d) { let obj = monitor.details.filter(item => item.host == d.ip && item.port == d.port && item.status == 1); if(Object.values(obj).length > 0) return "#fff" else return "#888" })código cortado de:
svg .selectAll() .data(data, function (d, i) { return d.host + ":" + d.port; }) .enter() .append("rect") .attr("x", function (d) { return x(d.host); }) .attr("y", function (d) { return y(d.port); }) .attr("width", x.bandwidth()) .attr("height", y.bandwidth()) .style("fill", function (d) { let obj = monitor.details.filter(item => item.host == d.ip && item.port == d.port && item.status == 1); if(Object.values(obj).length > 0) return "#fff" else return "#888" }) Aún más interesante, encontré en DOM el elemento de ese rect y, de acuerdo con DOM, el relleno es el color real que elegí (en la imagen a continuación, elijo el color rojo), pero no se refleja en la pantalla. 