首页 > 解决方案 > 寻找一种简写的 JS 方法来评估多个对象/对象状态的存在并设置为 bool

问题描述

因此,我需要根据多个对象的存在和状态设置很多状态:

目前我只是在做一个经典的 if 语句,然后检查 undefined。

let show_x = false;

if (some_object_presence !== 'undefined' || some_other_object_presence !== 'undefined' || some.other.object_presence !== 'undefined' ) {
    show_x = true;
}
...

这似乎是一个很长的路要走。有没有我可以这样设置的速记版本:

let show_y = some_object_presence || some_other_object_presence || some.other.object_presence;

我需要 show_y 的状态为布尔值。我确实考虑过为我正在寻找的每个对象状态创建中间测试,但这可能会使它再次变得复杂,例如。

let some_object_presence = object_qwe ? true : false;
let some_other_object_presence = object_asd ? true : false;
let some_third_object_presence = object_zxc ? true : false;

let show_z = some_object_presence || some_other_object_presence || some_third_object_presence;

任何想法都会有所帮助

标签: javascriptif-statement

解决方案


您可以使用双重否定将其转换为布尔值。如果定义了任何对象,则将其视为 true,因此您可以让 show_z 作为您的对象。

let show_z = !!(some_object_presence || some_other_object_presence || some_third_object_presence);

不完全正确,但简而言之,您可以考虑:空字符串""、0 0、空数组[]和未定义变量var x为假。其他一切都可以被认为是真实的。


推荐阅读