我必须在一个对象中获取布尔值的长度(如果为true)。 谁能帮我解决这个问题?
var data = {
mo: true,
tu: true,
we: true,
th: true,
fr: true,
sa: false,
su: false
};
答案 0 :(得分:1)
有两种方法(现代,较短与向后兼容且较长):
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);
在现代版本中,我们仅获取对象中的值,过滤掉不真实的值,并获取结果数组的长度。
在向后兼容版本中,我们遍历对象的属性,过滤掉不属于其自身属性或不真实的对象,然后增加计数。
答案 1 :(得分:-1)
这是一种简单的方法
function totalBoolean(data){
booleanTotal = 0;
for (key in data)
booleanTotal += data[key]
return booleanTotal;
}
var total = totalBoolean(data)