Tengo un ejemplo D3 muy simple que primero lee datos en una matriz asociativa y luego los muestra en un gráfico de barras.Uso de una matriz asociativa como datos para D3
Parece que no consigo mostrar nada con este método. En cambio, tengo que insertar una tarea en el medio: lea los datos en una matriz asociativa, copie esos datos en una matriz simple y luego muestre el gráfico de barras con la matriz simple.
chart.selectAll("div")
.data(genreAssociative)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
Lo anterior no funciona.
genreSimple = [];
for (var genre in genreAssociative) genreSimple.push(genreAssociative[genre]);
chart.selectAll("div")
.data(genreSimple)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
Lo anterior hace; usando una matriz simple como intermediario. ¿Hay alguna forma especial de iterar sobre una matriz asociativa en lugar de una matriz estándar?
Según la información incluida, la función chart.data no acepta un objeto javascript (también conocido como "matriz asociativa"). Si este es el caso, entonces no tiene más remedio que convertir a una matriz. – jbabey
No se llaman matrices asociativas en JavaScript. Tiendo a colgarme de esta terminología porque generalmente las personas que usan la matriz asociativa lo declaran como una matriz, como PHP. –