根据对象值触发事件

时间:2019-05-14 12:56:36

标签: javascript arrays object

我有一个类似

的对象
let obj = { 
        1: true, 
        2:false,
        3:true
}

无论对象值是否为假,如何返回对象键,例如,在上述情况下,仅应返回2

我尝试了Object.values(obj).filter(value => !value),但它只返回false

2 个答案:

答案 0 :(得分:1)

实际上,想出了

Object.entries(obj).filter(([key, value]) => !value).map(([key, value]) => key);

返回我需要的东西。

答案 1 :(得分:1)

您正在filter()上使用Object.values(),因此您将无法访问相应的密钥

您可以在filter()上使用Object.keys()并检查该键的值是否正确。

let obj = { 
        1: true, 
        2:false,
        3:true
}
const res = Object.keys(obj).filter(k => !obj[k]);
console.log(res)