Tengo problemas para identificar/reemplazar efectivamente el valor que necesito dentro de un objeto para una aplicación de edición de tarifas de pago.
{ Physicians: { telehealth: { orgName: "ORG B", weekdayEncounters: { type: "each", value: 15 }, weeknightEncounters: { type: "each", value: 16.25 }, weekendDayEncounters: { type: "each", value: 16.25 }, weekendNightEncounters: { type: "each", value: 17.25 }, holidayEncounters: { type: "each", value: 17.25 }, stipend: { type: "lump", value: 0 }, }, }, NonPhysicians: { telehealth: { orgName: "ORG B", weekdayEncounters: { type: "each", value: 15 }, weeknightEncounters: { type: "each", value: 16.25 }, weekendDayEncounters: { type: "each", value: 16.25 }, weekendNightEncounters: { type: "each", value: 17.25 }, holidayEncounters: { type: "each", value: 17.25 }, stipend: { type: "lump", value: 0 }, }, }, date: "07-2021", orgName: "ORG B", ltc: false, } Estoy buscando reemplazar el value dentro del objeto más profundo según el campo que se edite. En este punto, sigo obteniendo un código cada vez más desordenado tratando de profundizar en el objeto, leerlo y luego reemplazar el valor correcto. Tengo un ejemplo escrito aquí . Por favor, tómalo con calma, todavía estoy aprendiendo. Se agradecería mucho el consejo. Mi problema actual es que estoy devolviendo una matriz llena de indefinidos y luego el único objeto que necesito. Gracias por adelantado.
Entré en su ejemplo y tomé el objeto de nivel superior 'NEWRATES'. El siguiente código de ejemplo pasa por cada uno de los subobjetos NEWRATES['ltc'][0]['Infinity']['Physicians']['associates'] e imprime el valor debajo de la clave 'value'. También realiza una comprobación rápida del tipo, ya que el nivel más bajo contiene algunas claves que se asignan a cadenas, por ejemplo (orgName: "Infinity").
La llamada a la función Object.entries es necesaria para que el objeto indicado NEWRATES[...] sea iterable.
for( let [key,value] of Object.entries(NEWRATES["ltc"][0]['Infinity']['Physicians']['associates']) ){ if(typeof value == "object"){ console.log('value is: ' + value.value); } }Esto debería ser suficiente para ponerte en marcha de nuevo. Simplemente reemplace las claves de nivel superior de 'ltc' -> 'estándar', 'Médicos' -> 'No médicos' para iterar a través de las otras partes del objeto de nivel superior.