javascript - 如何获取对象中布尔值的计数
问题描述
我必须在一个对象中获取布尔值的长度(如果它是真的)。谁能帮我解决这个问题?
var data = {
mo: true,
tu: true,
we: true,
th: true,
fr: true,
sa: false,
su: false
};
解决方案
这里有两种方法(现代和更短与向后兼容和更长):
var data = {
mo: true,
tu: true,
we: true,
th: true,
fr: true,
sa: false,
su: false
};
const short = Object.values(data).filter((v) => v).length;
var long = 0;
for (var prop in data) {
if (data.hasOwnProperty(prop) && data[prop]) {
long++;
}
}
console.log(short, long);
在现代版本中,我们只取对象中的值,过滤掉任何不真实的值,然后取结果数组的长度。
在向后兼容的版本中,我们遍历对象的属性,过滤掉任何不是它自己的属性或不真实的,并增加计数。
推荐阅读
- r - 如何一起使用 lapply 和 ifelse 但在 R 中的 df 中保留原始值
- css - 如何使用css使子元素垂直位于父元素的中间?
- .net-core - 带有 Azure AD API 范围和 Graph 范围的访问令牌不在 Microsoft Graph 上进行身份验证
- cypress - 如何处理cypress中的测试失败
- reactjs - 如何在反应导航 5 中将图像添加到抽屉中?
- powershell - 更改 Powershell 表中第一行的文本颜色
- python - 如何找到重叠的intervalIndex pandas
- postgresql - Zabbix 慢速磁盘请求响应
- r - 删除 R 中特定列中的所有零值
- azure - 将私有静态 IP 地址附加到 Azure 容器实例