如何在正义对象中获取布尔值的计数

时间:2018-07-11 07:19:07

标签: javascript javascript-objects

我必须在一个对象中获取布尔值的长度(如果为true)。 谁能帮我解决这个问题?

var data = {
             mo: true, 
             tu: true, 
             we: true, 
             th: true, 
             fr: true, 
             sa: false, 
             su: false
           };

2 个答案:

答案 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)