比较三个布尔值并返回所有真布尔值
Javascript: Compare three booleans and return all true booleans
我有一个方法getPreferredfood()。它获得三个布尔值,代表不同的食品。它们中哪一个为真,你就返回它们。
getPreferredFood: function (){
var item 1;
var item2 ;
var item3;
//comparison?
return "Preferred food is " (whichever item was true)
}
我不知道如何返回的项目是真实的
将值存储在对象/映射中:
var options = {
a: true,
b: true,
c: false,
};
使用Object.keys
获取名称,并在该数组上使用.filter
过滤出false
:
Object.keys(options).filter(function(x) {
return options[x];
});
// ['a', 'b']
看起来您想要使用变量名作为字符串输出的一部分。这通常不是你想做的事情。
考虑这样做:
var tags = {
"vegan": true,
"non-veg": false,
"veg": false
};
var true_tags = [];
for (var tag in tags) {
if (tags[tag] === true) {
true_tags.push(tag);
}
}
console.log(true_tags); // will print [ "vegan" ]
var preferenceValues = {
'vegan': true,
'non-veg': false,
'veg': false
}
function getPreferences(preferenceValues) {
var preferences = [];
for(type in preferenceValues) {
if (preferenceValues[type]) {
preferences.push(type);
}
}
return 'Person prefers ' + preferences.join(', ') + ' food';
}
console.log(getPreferences(preferenceValues))
我建议将变量附加到名称空间(例如:api
):
var api={};
api.vegan= true
api.non_veg= false
api.veg = false;
然后,您需要循环遍历该名称空间的属性并过滤出真实的属性。
'Person prefers '+Object.keys(api).filter((ky)=>api[ky]).join(',');
如果不能添加到命名空间,则默认命名空间为window
&然后你需要有一个白名单来循环。
var api={};
api.vegan= true;
api.non_veg= false;
api.veg = false;
console.log(
'Person prefers '+ Object.keys(api).filter((ky)=>api[ky]).join(',')
)
标题>相关文章:
- Yui Get 复选框返回数组而不是布尔值
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- webpack优化最小化返回布尔值,而不是工厂值
- 使用 jQuery ajax 返回 DONE 上的布尔值
- 在一行中返回相反的布尔值
- 如何使用 JavaScript 区分布尔值和字符串返回值
- 聚合物 如何使用条件根据函数返回的布尔值显示不同的元素
- RegisterClientScriptBlock - confirm box 返回一个布尔值给 aspx.cs
- JavaScript:为什么布尔值的按位 OR 返回一个数字而不是一个布尔值
- 为什么这个对象方法不返回布尔值Javascript
- 当函数在 Javascript 中将其设置为 true 时,布尔值返回 false
- 使用 var t=!0 / var t=!1 表示真/假有多安全?他们是否总是返回真正的布尔值真/假
- 循环返回布尔值
- MVC 控制器操作返回 html 而不是布尔值
- Knockoutjs 可观察的布尔值返回奇怪的结果
- Robotframework:如何计算从Javascript调用返回的布尔值
- Php fetch 返回字符串,而不是布尔值“真/假”值
- 如何为窗体返回布尔值's”;onsubmit”;属性,这取决于ajax调用的成功与否
- 如果查询搜索包含元素,如何返回布尔值
- 将存储在cookie中的令牌发送到服务器并获得布尔值返回