Tengo un objeto con el siguiente formato desde un punto final que no controlo:
{ "Day": "08-01-2021", "Impressions": "34,058", "Visits": "673", "VisitRate": "6.19%", "CostPerVisit": "$0.90", "UsersReached": "10,865", "Conversions": "88", "OrderValue": "$5,932.18", "ConversionRate": "13.08%", "AverageOrderValue": "$67.41", "ROAS": "9.76", "CPA": "$6.91", "Spend": "$607.96" }, { "Day": "08-02-2021", "Impressions": "28,419", "Visits": "807", "VisitRate": "6.76%", "CostPerVisit": "$0.74", "UsersReached": "11,939", "Conversions": "108", "OrderValue": "$7,666.47", "ConversionRate": "13.38%", "AverageOrderValue": "$70.99", "ROAS": "12.80", "CPA": "$5.55", "Spend": "$599.03" }, { "Day": "08-03-2021", "Impressions": "34,278", "Visits": "927", "VisitRate": "8.03%", "CostPerVisit": "$0.61", "UsersReached": "11,539", "Conversions": "160", "OrderValue": "$11,838.38", "ConversionRate": "17.26%", "AverageOrderValue": "$73.99", "ROAS": "20.94", "CPA": "$3.53", "Spend": "$565.35" }Necesito usar estos datos en una biblioteca de gráficos que no admite valores numéricos con signos de dólar o comas (aunque los porcentajes parecen estar bien).
Puedo recorrer el objeto y crear un nuevo objeto si conozco las claves, pero estoy absolutamente perdido sobre cómo hacer esto dinámicamente donde no se conocen las claves (las claves no se conocen todo el tiempo).
EDITAR:
Terminé haciendo lo siguiente. Estoy usando lodash porque ya está expuesto en mi aplicación:
_.each(json.data, function(entry, index) { _.each(entry, function(v, k) { json.data[index][k] = v.replace('$', '').replace(',', ''); }) });Es esto correcto"?
puede obtener una lista de claves utilizando la función Object.keys()
let keys = Object.keys(objFromApi)después de obtener una lista de claves, puede recorrerlas y eliminar el signo '$', etc.
// loop through keys for(const key of keys){ // correct value objFromApi[key] = objFromApi[key].replace('$', '') }