Estoy tratando de iterar a través de esta estructura de datos para generar un gráfico. Pero no pude averiguar cómo mapear a través de mis Objetos.
{ "dP008S002D007":[ 571.8619718309859, 604.5888966971188 ], "dP009S002D007":[ 1445.2859154929577, 1503.5495432185523 ] }dp00... será mi línea. Entonces mapearé este objeto y generaré una línea, los valores dentro de la matriz serán mis datos. Pero no puedo entender cómo mapear esta estructura. Esto era un diccionario y logré reducirlo a esto. Aquí está mi código.
const chartPoints = useMemo(() => { const history = iotData?.history?.[location.id].sensors || []; const chartPoints = {}; const findPoints = Object.keys(history).map((key) => { chartPoints[key] = history[key].map((data) => data.avg); }); return chartPoints; }, [iotData?.history, location.id]);Sería ideal si pudiera regresar:
[ "dP008S002D007":[ 571.8619718309859, 604.5888966971188 ], "dP009S002D007":[ 1445.2859154929577, 1503.5495432185523 ] ]O mapee sobre estos objetos. ¿Puede alguien ayudarme con esto? Gracias por todo.
Como algunos respondieron a su pregunta, no puede hacer una variable como quería en su salida. Pero, debido a que solo desea iterar a través de su entrada, puede usar for...in
En un for...in puedes iterar así:
for(key in obj) { //key is the name of the key like "dP009S002D007" //obj[key] is the value like [1445.2859154929577,1503.5495432185523] }de lo contrario, también puede transformar todo su objeto como una matriz de matriz con esta:
let table = [] for(key in obj) { table.push([key, ...obj[key]]) }produce 1 matriz que contiene 2 matrices como esta:
[ [ 'dP008S002D007', 571.8619718309859, 604.5888966971188 ], [ 'dP009S002D007', 1445.2859154929577, 1503.5495432185523 ] ]Luego podrá usar .map en la mesa y hacer lo que quiera.