我试图找出通过javascript对象进行交互的最佳方式,以查看其中一个键是否设置为某个值。我知道我可以做一个foreach循环,但我觉得有一种更简单的方法。
var myObject = {
a: false,
b: false,
c: false,
x: false
}
如果至少有一个值设置为true,则id喜欢快速返回true,如果all都为false,则返回false。
答案 0 :(得分:4)
你必须迭代,但你可以做这样的事情
var hasTrue = Object.keys(myObject).some(function(key) {
return myObject[key];
});
这会使用Array.some
,并在遇到true
值时立即停止。
答案 1 :(得分:0)
要返回key
作为其值的yourValue
,请执行以下操作:
var yourValue = true;
var key = Object.keys(myObject).filter(function (i) {
return myObject[i] === yourValue;
})[0];
如果找不到密钥,它将返回undefined
。
如果您不需要key
并且只需要知道该值是否在您的对象中,您只需使用some
方法:
var hasValue = Object.keys(myObject).some(function (i) {
return myObject[i] === yourValue;
});
答案 2 :(得分:0)
var any_true = false;
JSON.stringify(myObject, function(key, value) {
if (value === true) any_true = true;
});
这使用JSON.stringify
的回调功能。它的优点是即使在嵌套对象中也能找到任何真值。