您好我试图在JavaScript中找到对象数组中的布尔值的总和
我的json喜欢
var myoBj = [{
"id": 1,
"day": 1,
"status": true
}, {
"id": 2,
"day": 1,
"status": false
}, {
"id": 3,
"day": 1,
"status": false
}, {
"id": 4,
"day": 3,
"status": false
}];
我希望使用JavaScript / typescript中的reduce函数来计算所有状态值的总和
我希望只有当所有状态都为真时才将整体状态显示为真,否则它应该为假
var result = myObj.reduce((sum, next) => sum && next.status, true);
如果每个值都为真,则返回true。
如果你想总和让我们说,day
项目值取决于status
标志,这可能看起来像:
var result = myObj.reduce((res, item) => item.status ? res + item.day : res, 0);
对于所有状态均为true的整体状态,您应该使用每种方法:
var result = myObj.every(item => item.status);
如果你必须使用reduce
,你可以利用x*false == 0
的事实,所以你可以做到以下几点:
const myObj=[{id:1,day:1,status:true},{id:2,day:1,status:false},{id:3,day:1,status:false},{id:4,day:3,status:false}],
res = !!myObj.reduce((bool, {status}) => bool*status, true);
console.log(res);