我正在编写将用于为网站创建引文的代码,而我目前正在处理的问题是,如果引文数据缺少信息,例如缺少作者或标题,该怎么办。所以,我目前实现的是一堆if语句来检查特定的引用是否缺少任何信息,基本上它看起来像:
if (citationdata.authors) {
citation += citationdata.authors
}
else {
citation += "Unknown author. "
}
以及我需要针对特定引用类型进行的任何其他检查,最终大约是5-6个单独的if语句,直到建立完整的引用。
我对使用javascript相对较新,所以,我的问题是这是否会被视为不良做法,如果是这样,我可以使用哪些替代方案?
答案 0 :(得分:9)
这个简单的东西可以简化为:
citation += citationdata.authors || "Unknown author. ";
||
operator会将左边的任何内容转换为布尔值,如果它是' truthy '值,它将返回表达式的左侧,否则它将评估并返回表达式的右侧。
' Falsey '值包括:
false
0
NaN
null
undefined
所有其他值均为' truthy '。
答案 1 :(得分:0)
您可以将条件检出抽象为一种方法,您可以为要检查的每个属性调用该方法。有点像...
function getCitationData(data, propName, noDataMesage) {
if(data[propName]) {
return data[propName];
}
return noDataMessage;
}
citation += getCitationData(citationdata, "authors", "Unknown author. ");