【发布时间】:2018-10-13 00:30:11
【问题描述】:
在执行 ETL 以将数据从 Sybase 数据库获取到 MongoDB 后端时,我可以这样做:
if (data.hire_date) staffProfile.hireDate = data.hire_date;
此方法可防止将空值填充到 MongoDB 中。如果data.hire_date 有一个值,那么它将被放入staffProfile.hireDate。但是,如果没有值,它实际上会被忽略。
现在,我想用三元表达式创建相同的结果。比如:
staffProfile.hireDate = data_hireDate ? data_hireDate : null;
但是,我不想在这里使用null,因为当我这样做时,我最终会在数据库中得到一堆空值。我的问题实际上归结为两件事:在我的第一个示例中,在“if”情况下,当找不到值时,实际上发生了什么?结果是undefined?我可以在三元语法示例中使用什么来有效地编写相同的条件检查 - 直到值不存在时传递的内容?
这和我的第一个例子一样吗?
staffProfile.hireDate = data_hireDate ? data_hireDate : undefined;
【问题讨论】:
-
staffProfile.hireDate: staffProfile.hireDate ?这种语法没有意义 - 冒号应该出现在三进制问号之后,而不是之前 -
如果你不定义它,它就是未定义的。如果没有价值,数据库和/或您的代码期望什么,只有您知道。
-
在尝试分配值时使用
=,而不是:
标签: javascript ternary-operator