我只是想看看,如何知道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;
}
发现此错误TypeError: obj.filter is not a function
后来我明白.filter
适用于array
。
也尝试了这个,但没有运气,因为它总是返回false:
checkIfAnyGsIsOverridden (obj) {
console.log(Object.keys(obj).every(k => {
return obj[k] === true
}))
}
我知道总是很难,但我喜欢像上面那样做一些简单而有活力的事情:
if globalSetting.setting1 === true {
// do something
}
答案 0 :(得分:1)
也尝试了这个,但没有运气,因为它总是返回false:
由于您正在检查相反的情况 - 如果every
属性设置为true
使用some
代替
checkIfAnyGsIsOverridden (obj) {
console.log(Object.keys(obj).some(k => {
return obj[k] === true
}))
}
如果任何一个属性设置为true
,则上面的代码将返回true
。