javascript - 用嵌套对象内的新键值对替换键值对
问题描述
我无法有效地识别/替换我需要在对象中用于编辑工资率应用程序的值。
{
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
根据编辑的字段替换最深的对象内部。在这一点上,我只是不断地获得越来越混乱的代码,试图挖掘对象并读取它,然后替换正确的值。我在这里写了一个例子。请放轻松,我还在学习。建议将不胜感激。我当前的问题是我返回一个充满未定义的数组,然后返回我需要的一个对象。提前致谢。
解决方案
我进入了您的示例并采用了顶级对象“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' 替换顶级键,即可遍历顶级对象的其他部分。
推荐阅读
- php - Mysql 使用 php 按大小获取产品
- ssh - 如何使用 RDP 和 SSH 设置鳄梨酱会话记录
- c++ - C++ 可变参数模板包扩展为多种模板类型(例如 std::shared_ptr)是否可能?
- php - parse_ini_file 返回的数据是否总是与给定文件的顺序相同?
- typescript - Discord.js 空值检查在 TypeScript 中不起作用
- c# - 获取 SharePoint 列表中行的所有版本
- r - 如何计算 R 中回归模型的风险差异?
- java - GET 请求 - 重定向到另一个页面并保留参数
- responsive - 为什么不同的移动网站以 m 扩展名打开
- python - 我无法在 ubuntu18 上安装带有 pip 的 python 包