以下是我正在使用的数据结构
masterObject: {
Steps: [
{
step: {
required: false,
},
step: {
required: false,
},
step: {
required: false,
},
},
]
}
我想循环遍历Steps数组,并检查每个step对象是否都包含等于false的所需属性。如果所有需要的步骤都是错误的,我想将一个属性附加到的masterObject对象
masterObject.isObjectWithNoRequiredSteps = true;
代码运行后会是这样
masterObject: {
Steps: [
{
step: {
required: false,
},
step: {
required: false,
},
step: {
required: false,
},
},
]
isObjectWithNoRequiredSteps: true
}
如果有一个例子,其中一个所需的step对象为true,我想将新属性设置为false
masterObject.isObjectWithNoRequiredSteps = false;
masterObject: {
Steps: [
{
step: {
required: true,
},
step: {
required: false,
},
step: {
required: false,
},
},
]
isObjectWithNoRequiredSteps: false
}
在更高级别的对象上设置此属性的最佳方法是什么?
Steps
数组中的对象具有多个名称相同的属性/键step
。这在JavaScript中是不允许的。考虑按以下更改数据结构
masterObject: {Steps: [{
step1: { required: false, },
step2: { required: false, },
step3: { required: false, },
}, ] }
现在,要确定Steps
数组中的每个步骤是否为false,请使用以下代码
masterObject.isObjectWithNoRequiredSteps = Object.keys(masterObject.Steps[0]).reduce(function(result, nextStep){
const isRequired = masterObject.Steps[0][nextStep].required;
return !isRequired && result;
}, true);