简体   繁体   English

检查任何对象的属性设置为true

[英]check any object's property is set to true

I am just trying to see, how to know that any property in globalSettings is set to true: 我只是想看看,如何知道globalSettings中的任何属性都设置为true:

<div :class="checkIfAnyGsIsOverridden(globalSettings) ? 'text-success' : 'text-muted")>Lorem Ipsum</div>


globalSettings: {
  setting1: true,
  setting2: false,
  setting3: false
}

checkIfAnyGsIsOverridden (obj) {
  return obj.filter(item => {
    // not sure what code should go here it check true or false 
    // that returns the length
  }).length;
}

Got this error TypeError: obj.filter is not a function and later I got to understand that .filter works with array . 收到此错误TypeError: obj.filter is not a function ,后来我了解到.filter可用于array

Also tried this but no luck because it always return false: 也尝试过此方法,但是没有运气,因为它总是返回false:

checkIfAnyGsIsOverridden (obj) {
  console.log(Object.keys(obj).every(k => {
    return obj[k] === true
  }))
}

I know there is alway hard way but I like to do something simple and dynamic like above: 我知道总是有困难的方法,但是我喜欢像上面那样做一些简单而动态的事情:

if globalSetting.setting1 === true { 
  // do something 
}

Also tried this but no luck because it always return false: 也尝试过此方法,但是没有运气,因为它总是返回false:

Since you are checking the opposite - if every property is set to true 由于您正在检查相反的内容-如果every属性都设置为true

Use some instead some代替

checkIfAnyGsIsOverridden (obj) {
  console.log(Object.keys(obj).some(k => {
    return obj[k] === true
  }))
}

Above code will return true , if any one property is set to true . 上面的代码将返回true ,如果任何一个属性设置为true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM