在嵌套对象中用新的键值对替换键值对

Replacing a key value pair with a new key value pair inside a nested object

我在有效地遇到问题 identifying/replacing 我需要在对象中编辑工资率应用程序的值。


    {
        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,
      }

我希望根据编辑的字段替换最深对象内的 value。在这一点上,我只是不断地获得越来越混乱的代码,试图深入研究读取它的对象,然后替换正确的值。我在 written up here 中有一个示例。请对我放轻松,我还在学习。建议会很大 appreciated.My 问题当前是我返回一个充满未定义的数组,然后是我需要的一个对象。提前致谢。

我进入了你的示例并获取了顶级对象 'NEWRATES'。下面的示例代码遍历每个子对象 NEWRATES['ltc'][0]['Infinity']['Physicians']['associates'],并打印下的值关键 'value'。它还会快速检查类型,因为最低级别包含一些映射到字符串的键,例如(orgName: "Infinity").

Object.entries 函数调用是使指定对象 NEWRATES[...] 可迭代所必需的。

for( let [key,value] of Object.entries(NEWRATES["ltc"][0]['Infinity']['Physicians']['associates']) ){
    if(typeof value == "object"){
        console.log('value is: ' + value.value);
    }
}

这应该足以让您重新开始。只需替换 'ltc' -> 'standard' 、 'Physicians' -> 'NonPhysicians' 中的顶级键即可遍历顶级对象的其他部分。