我正在尝试根据缓存的查询结果过滤给定的输入。由于我再次过滤了用户输入值和数据库,因此我将它们转换为小写并检查
result = this.cachedResults.filter(f => f.prj.toLowerCase().indexOf((this.sV).toLowerCase()) !== -1);
它可以正常工作,直到cachedResult在该字段中没有NULL
为止。但是,如果为NULL,我如何在此处转义该记录。
答案 0 :(得分:2)
如果result = this.cachedResults.filter(f => {
if (!f.prj) {
return false; // Or return true, if you want
}
return f.prj.toLowerCase().indexOf((this.sV).toLowerCase()) !== -1);
});
是f.prj
,则它不能包含NULL
,因此应过滤掉特定的this.sV
,对吗?在这种情况下:
f
答案 1 :(得分:1)
在对象上使用prj
之前,必须检查对象中是否存在属性toLowerCase()
。
result = this.cachedResults.filter(f => {
return f.prj ? (f.prj.toLowerCase().indexOf((this.sV).toLowerCase()) !== -1) : false
});
这对您有用吗?
如果问题是(this.sV)
不存在,那么您也必须检查一下。
答案 2 :(得分:1)
您可以执行以下操作来捕获var qstns = _context.UserAnswers.Where(uans => uans.SurveyId == id)
.GroupBy(uans => uans.CreatedBy)
.Select(grans => new UserAnswersReturnDto {
UserEmail = grans.Key,
Qustions = grans.Select(ans => new UserAnswersSet() {
QNo = ans.QNo,
Ansrs = ans.Answers
}).ToList()
} ).ToList();
中的空值:
f.prj