javascript - 对象有许多数组,遍历每个数组并更改一些值
问题描述
我有一个具有大量数组和属性的对象。有一个名为的属性targetProperty
出现在对象的各个位置。
我有一个功能,如果用户单击“是”,则该属性的每个实例都需要重新分配给一个新值。
问题是我用于分配新值的函数在此场景中不起作用:
reassingPropertyInObj(obj, status) {
if (typeof obj === 'object' && obj !== null) {
obj.targetProperty = status;
for (const key in obj) {
this.handleExpandCollapseClick(obj[key], status);
}
}
},
有人对此有解决方案吗?也不能使用 JSON.parse() 或类似的东西,因为如果用户需要,属性需要保持反应性以便以后重新分配。
下面是一个对象的示例:
{
"id": 16,
"ref_study_id": "3412333",
"title": "SomePersonNameOne",
"capabilities_available": [
{
"id": 75,
"name": "Clinical Data",
},
{
"id": 538,
"name": "RK's Capability",
}
],
"capabilities_impacted": [],
"businessImpact": {
"id": 2,
"name": "Medium"
},
"sites_impacted": [],
"sites_available": []
},
{
"id": 6,
"ref_study_id": "123124",
"title": null,
"capabilities_available": [
{
"id": 37,
"name": "Clinical Site Experience,
},
{
"id": 41,
"name": "Experience",
}
],
"capabilities_impacted": [
{
"id": 37,
"name": "Information Exchange",
"is_study_level": false,
"businessImpact": {
"id": 2,
"name": "Medium"
}
},
{
"id": 39,
"name": "IT/Data Experience",
"is_study_level": false,
"businessImpact": {
"id": 2,
"name": "Medium"
}
},
{
"id": 34,
"name": "Mgmt & Storage",
"is_study_level": false,
"businessImpact": {
"id": 3,
"name": "Minor"
}
}
],
"businessImpact": {
"id": 2,
"name": "Medium"
},
"sites_impacted": [],
"sites_available": []
},
有问题的财产是businessImpact
。正如您所看到的,它本身作为属性出现在数组内部(有时是它们自己的数组数组)。
我设置了一个功能,例如:
arrayOfProperties.forEach((property) => {
obj[property].forEach((o) => {
o.businessImpact = newVal;
});
});
但当然它还不够深入。
解决方案
推荐阅读
- javascript - 无法从元素中删除事件侦听器
- postgresql - PostgreSQL 13 中的查询优化
- python - 覆盖 Python 的 __new__ 方法时复制原始行为
- javascript - 当用户通过 showSaveFilePicker 保存 blob 时建议文件名
- java - Spring Boot 2 with Gradle - 从单个代码库构建/编译不同版本(Basic、Pro、Ultimate)
- javascript - 2.2 one4() 函数在我转到 Calculator.html 文件时不起作用...请帮帮我
- python - 如何创建一个 Python 程序,该程序还运行一个网络服务器以进行监控
- javascript - 如何重建随机切片的图像?
- c# - 实施 SCIM v2 服务的策略
- angular - 如何仅以角度反应形式计算 5 个复选框值