javascript - 寻找一种简写的 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;
任何想法都会有所帮助
解决方案
您可以使用双重否定将其转换为布尔值。如果定义了任何对象,则将其视为 true,因此您可以让 show_z 作为您的对象。
let show_z = !!(some_object_presence || some_other_object_presence || some_third_object_presence);
不完全正确,但简而言之,您可以考虑:空字符串""
、0 0
、空数组[]
和未定义变量var x
为假。其他一切都可以被认为是真实的。
推荐阅读
- wordpress - 如何返回新的 WordPress 5+ 库块的输出以自动将图像链接到媒体文件?
- ios - 我们可以让多个动态链接指向单个应用程序吗?
- c# - 如何在 Xamarin 应用程序的不同页面上将拆分编辑器字符串放入 ListView?
- java - 如何启用谷歌地方 API
- android - Android Azure Easy Tables 错误:不兼容的类型:MobileServiceTable
无法转换为列表 - python - 将框放在一组轴周围
- android - ViewPager Lag 使用 FragmentStatePagerAdapter
- python - 使用 BeautifulSoup 提取网站数据
- ios - Xcode 10.1:链接项目中所有代码的“架构 x86_64 的未定义符号”
- html - 在具有相同高度的行的 div 列之间添加空间