こんにちは私は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関数を使用してすべてのstatus値の合計が必要です
全体を表示したいステータスをtrueとしてすべてのステータスがtrueの場合のみ、それ以外の場合はfalseにする必要があります
var result = myObj.reduce((sum, next) => sum && next.status, true);
すべての値が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);