这是我正在使用的数据结构
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
}
如果有一个示例,其中所需的步骤对象之一为true,我想将new属性设置为false
masterObject.isObjectWithNoRequiredSteps = false;
masterObject: {
Steps: [
{
step: {
required: true,
},
step: {
required: false,
},
step: {
required: false,
},
},
]
isObjectWithNoRequiredSteps: false
}
在较高级别的对象上设置此属性的最佳方法是什么?
答案 0 :(得分:0)
Steps
数组中的对象具有多个具有相同名称step
的属性/键。 JavaScript不允许这样做。考虑如下更改数据结构
masterObject: {Steps: [{
step1: { required: false, },
step2: { required: false, },
step3: { required: false, },
}, ] }
现在,要确定Steps
数组中的每个步骤是否为假,请使用以下代码
masterObject.isObjectWithNoRequiredSteps = Object.keys(masterObject.Steps[0]).reduce(function(result, nextStep){
const isRequired = masterObject.Steps[0][nextStep].required;
return !isRequired && result;
}, true);