Javascript-检查是否存在';嵌套对象中的任何假值

Javascript-检查是否存在';嵌套对象中的任何假值,javascript,Javascript,我想检查此对象是否有任何true值 var test = {"colors":{"blue":false}, "sizes":{"square":true}}; 我尝试了以下代码 function checkFalse(obj) { for (var i in e) { for (var j in i) { if (i[j] == false) return false; } } return true; } 但

我想检查此对象是否有任何
true

var test = {"colors":{"blue":false}, "sizes":{"square":true}};
我尝试了以下代码

function checkFalse(obj) {
    for (var i in e) {
        for (var j in i) {
            if (i[j] == false) return false;
        }
    }
    return true;
}

但它总是返回
true
。提前谢谢

您的函数有错误

function checkFalse(obj) {
    for (var i in e) { //This line had an error 
        for (var j in e[i]) { //So did this.
            if (e[i][j] == true) return false;
        }
    }
    return true;
}

这个问题对我来说有点难理解,不确定错误是否会导致您期望的输出,如果不是,那么您需要重新审视您的方法v.s.您想做什么。

您的函数有错误

function checkFalse(obj) {
    for (var i in e) { //This line had an error 
        for (var j in e[i]) { //So did this.
            if (e[i][j] == true) return false;
        }
    }
    return true;
}

这个问题对我来说有点难理解,不确定这些错误是否会导致你期望的输出,如果不是,那么你需要重新审视你的方法vs.你想做什么。

你正在检查e中的
var i,并且
e
不存在。请尝试以下代码:

    function checkFalse(obj) {
var tempbool = false;
     for (var i in obj) {
 for (var j in i) {
 if (i[j] == true) tempbool = true;
 } 
} 
return tempbool; }

您正在检查e
中的
var i,并且
e
不存在。请尝试以下代码:

    function checkFalse(obj) {
var tempbool = false;
     for (var i in obj) {
 for (var j in i) {
 if (i[j] == true) tempbool = true;
 } 
} 
return tempbool; }

实际上你做错了。如果至少有一次true,则返回true。你应该做以下几点:

function checkFalse(obj) {
    for (var i in obj) { 
        for (var j in obj[i]) {
            if (obj[i][j] == true) return true;
        }
    }
    return false;
}
var test = {"colors":{"blue":false}, "sizes":{"square":false}}; 
console.log(checkFalse(test)); // for this you will get false since you do not have true in it.

var test = {"colors":{"blue":false}, "sizes":{"square":true}}; 
console.log(checkFalse(test)); // for this you will get true since you   have a true in it.

实际上你做错了。如果至少有一次true,则返回true。你应该做以下几点:

function checkFalse(obj) {
    for (var i in obj) { 
        for (var j in obj[i]) {
            if (obj[i][j] == true) return true;
        }
    }
    return false;
}
var test = {"colors":{"blue":false}, "sizes":{"square":false}}; 
console.log(checkFalse(test)); // for this you will get false since you do not have true in it.

var test = {"colors":{"blue":false}, "sizes":{"square":true}}; 
console.log(checkFalse(test)); // for this you will get true since you   have a true in it.

您可以执行以下操作:

var test={“colors”:{“blue”:false},“size”:{“square”:true};
var-res=[];
for(var输入测试){
res=Object.key(test[key]).filter(函数(k){
返回测试[key][k]==true
});
}

console.log(res)
您可以执行以下操作:

var test={“colors”:{“blue”:false},“size”:{“square”:true};
var-res=[];
for(var输入测试){
res=Object.key(test[key]).filter(函数(k){
返回测试[key][k]==true
});
}

console.log(res)
您想要真值还是假值?您的问题标题和内容相互矛盾。不管怎样,您想要
for(var j in e[i])
if(e[i][j])
是的,对不起,我刚刚更正了。您想要真值还是假值?您的问题标题和内容相互矛盾。不管怎样,你想要
for(var j in e[i])
if(e[i][j])
是的,对不起,我刚刚更正了。