【问题标题】:Replacing a key value pair with a new key value pair inside a nested object用嵌套对象内的新键值对替换键值对
【发布时间】:2021-12-11 08:57:15
【问题描述】:

我无法有效地识别/替换我需要在对象中用于编辑工资率应用程序的值。


    {
        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 中有一个例子。请放轻松,我还在学习。建议将不胜感激。我当前的问题是我返回一个充满未定义的数组,然后返回我需要的一个对象。提前致谢。

【问题讨论】:

    标签: javascript object replace nested


    【解决方案1】:

    我进入了您的示例并采用了顶级对象“NEWRATES”。下面的示例代码遍历每个子对象 NEWRATES['ltc'][0]['Infinity']['Physicians']['associates'],并打印键 'value' 下的值。它还对类型进行快速检查,因为最低级别包含一些映射到字符串的键,例如(组织名称:“无限”)。

    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' 替换为遍历顶级对象的其他部分。

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 2021-12-17
      • 2021-08-17
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      相关资源
      最近更新 更多