我有一个与filter
数据的count
和JSON object
有关的问题。
在SIT = filter
的情况下,如何count
和objects
false
?在示例数据中,该值为3。
和计数的SIT总数是多少?在示例数据中,该值为4。
我想对PROD做同样的事情。
我尝试了以下方法:
var SIT = response.filter(function (obj) {
return obj.environment === "SIT";
});
和
var SIT = [];
SIT = response.data.cis.filter(function (obj) {
return obj.environment === "SIT";
});
这是我的数据:
{
"cis": {
"dsbgchop193": {
"environment": "SIT",
"is_compliant": false
},
"dsbgchop194": {
"environment": "SIT",
"is_compliant": true
},
"dsbgchop195": {
"environment": "SIT",
"is_compliant": false
},
"dsbgchop196": {
"environment": "SIT",
"is_compliant": false
},
"id": "2017.10.17",
"psbgwais1v": {
"environment": "PROD",
"is_compliant": false
},
"psbgwais2v": {
"environment": "PROD",
"is_compliant": false
},
"rsbgwais1v": {
"environment": "PROD",
"is_compliant": false
},
"rsbgwais2v": {
"environment": "PROD",
"is_compliant": true
}
},
"rating": "",
"ssl": {}
}
最佳答案
var data = {
"cis": {
"dsbgchop193": {
"environment": "SIT",
"is_compliant": false
},
"dsbgchop194": {
"environment": "SIT",
"is_compliant": true
},
"dsbgchop195": {
"environment": "SIT",
"is_compliant": false
},
"dsbgchop196": {
"environment": "SIT",
"is_compliant": false
},
"id": "2017.10.17",
"psbgwais1v": {
"environment": "PROD",
"is_compliant": false
},
"psbgwais2v": {
"environment": "PROD",
"is_compliant": false
},
"rsbgwais1v": {
"environment": "PROD",
"is_compliant": false
},
"rsbgwais2v": {
"environment": "PROD",
"is_compliant": true
}
},
"rating": "",
"ssl": {}
}
var statistics = Object.keys(data.cis).reduce(function (stats, key) {
var item = data.cis[key];
if (item.environment === 'SIT') {
stats.totalCount += 1;
if (item.is_compliant) {
stats.compliantCount += 1;
}
}
return stats;
}, { totalCount: 0, compliantCount: 0 });
console.log('statistics : ', statistics);
.as-console-wrapper { max-height: 100%!important; top: 0; }