javascript - 为对象中的多个数组分配相同的值
问题描述
您好我正在尝试将单个值分配给单个对象中的多个动态数组和嵌套数组。
这里是对象:
object = {
metaForm: [{
id: 1,
text: 'abc',
AdditionalVal: []
},
{
id: 1,
text: 'abc',
AdditionalVal: [{
id: 1,
text: 'add',
compositeConfig: []
}, ]
},
{
id: 1,
text: 'abc',
AdditionalVal: [{
id: 1,
text: '123',
compositeConfig: [{
id: 1,
text: 'composit',
compositeConfig: []
}]
}, ]
}
],
tabData: [{
composite: false,
compositeFieldList: [],
id: 3576,
tenantId: "1",
},
{
composite: false,
compositeFieldList: [{
id: 1,
text: 'composit2',
compositeConfig: []
},
{
id: 1,
text: 'composit3',
compositeConfig: []
},
],
id: 3576,
tenantId: "1",
},
]
}
下面是o/p
object = {
metaForm: [{
id: 1,
text: 'abc',
AdditionalVal: [],
isDisabled: true,
},
{
id: 1,
text: 'abc',
isDisabled: true,
AdditionalVal: [{
id: 1,
text: 'add',
isDisabled: true,
compositeConfig: []
}, ]
},
{
id: 1,
text: 'abc',
isDisabled: true,
AdditionalVal: [{
id: 1,
text: '123',
isDisabled: true,
compositeConfig: [{
id: 1,
text: 'composit',
isDisabled: true,
compositeConfig: []
}]
}, ]
}
],
tabData: [{
composite: false,
compositeFieldList: [],
id: 3576,
isDisabled: true,
tenantId: "1",
},
{
composite: false,
isDisabled: true,
compositeFieldList: [{
id: 1,
text: 'composit2',
isDisabled: true,
compositeConfig: []
},
{
id: 1,
text: 'composit3',
isDisabled: true,
compositeConfig: []
},
],
id: 3576,
tenantId: "1",
},
]
}
在上述对象中,分配了一个新值,即“isDisabled: true”,该值分配给所有数组以及内部或嵌套数组。
无论有多少数组或嵌套数组,如何为多个动态数组赋值
解决方案
那里没有神奇的方法。
你应该只写简单的递归。
像这样的东西应该可以工作(伪代码):
function traverseAndSetDisabled(obj) {
if(Array.isArray(obj)) {
for(child in obj) obj[child] = traverseAndSetDisabled(child)
} else {
obj.isDisabled = true;
}
return obj;
}
[更新]
工作解决方案(结果与用户要求的结果 100% 相同)
function traverseAndSetDisabled(obj) {
if(typeof obj === 'object') {
for(const child in obj) obj[child] = traverseAndSetDisabled(obj[child])
if(!Array.isArray(obj)) {
obj.isDisabled = true;
}
}
return obj;
}
推荐阅读
- javascript - 在html5画布的矩形内对齐文本
- python-3.x - np.percentile 似乎没有给出正确的输出
- git - 在 Git 中将选定提交从一个分支合并到另一个分支的更好方法
- c# - 单声道开发中的统一渲染器材质颜色访问问题
- c# - 如何使用 Join 搜索字段?
- git - zsh:覆盖内置函数
- javascript - 在 Electron React 组件中执行 Javascript 应用程序
- javascript - 如何在 React 中加载外部 js 文件?
- android - 如何将 content://0@ 转换为接受 uri - android
- r - 将 的变量与解的向量进行比较