Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 对象的布尔值/“;平均值”;布尔函数(更好的解释)_Angular_Typescript - Fatal编程技术网

Angular 对象的布尔值/“;平均值”;布尔函数(更好的解释)

Angular 对象的布尔值/“;平均值”;布尔函数(更好的解释),angular,typescript,Angular,Typescript,有这个目标 this.form= { info: { isactive: true }, section1: { isComplete: true, subs: { person: { isComplete: true

有这个目标

        this.form= {
            info: {
                isactive: true
            },
            section1: {
                isComplete: true,
                subs: {
                    person: {
                        isComplete: true
                    },
                    workinfo: {
                        isComplete: true
                    }
                }
            },
            section2: {
                isComplete: false,
                subs: {
                    base: {
                        isComplete: true
                    },
                    address: {
                        isComplete: true
                    },
                    lr: {
                        isComplete: false
                    }
                }
            },
            ...
我希望能够基于subs isComplete将节的isComplete属性设置为true/false

如果其中一个子项[].isComplete为false,则section.isComplete将为false

我已经调查了。减少,但没有成功

我想让它与许多需要的潜艇任何部分的工作 我正在尝试下面这样的东西(暂时不起作用)

obj = form.section1;
obj.isComplete = false;
for (const key of Object.keys(obj.subs)) {
    obj.isComplete = obj.isComplete && obj.subs[key].isComplete;
}
有什么想法吗

多谢各位

不起作用

显然这是行不通的,因为
false&&boolean
将始终以
false
返回。请以
true
开头

obj = form.section1;
obj.isComplete = true;
for (const key of Object.keys(obj.subs)) {
    obj.isComplete = obj.isComplete && obj.subs[key].isComplete;
}

通常“不起作用”的信息不足以帮助你;具体来说,您的代码中有什么不起作用?是不是
isComplete
保持
false
?这是因为
false&&anythingElse
总是
false
。您应该将
isComplete
初始化为
true
。如果需要,还可以使用
obj.isComplete=Object.values(obj.subs).every(v=>v.isComplete)
。我想回答这个问题,但我不确定我是否完全理解你的问题,没有一个易于测试的答案。这篇文章中给出的答案可能就是你正在寻找的解决方案。this.formSectionsAlt[parentSection].isComplete=Object.values(subSection).every(v=>v.isComplete);成功了;谢谢你jcalzor只需做
并跳过声明它<代码>!!obj.isComplete&&obj.subs[key].isComplete。
obj = form.section1;
obj.isComplete = true;
for (const key of Object.keys(obj.subs)) {
    obj.isComplete = obj.isComplete && obj.subs[key].isComplete;
}