【发布时间】:2019-07-26 23:22:29
【问题描述】:
假设我们有以下 .filter 函数:
search(searchQuery: string) {
let results = myArray.filter(item =>
item.title.toLowerCase().includes(searchQuery) ||
item.description.toLowerCase().includes(searchQuery)
);
return results;
}
对于此示例,我们可以认为item 始终没有description 属性,但只有某些时候。
在这种情况下,函数将失败并出现错误:
错误类型错误:无法读取未定义的属性“toLowerCase”
我们如何才能仍然在数组中进行搜索,并且仅当 description 属性存在时才将其包含在搜索中?这在.filter() 函数中是否可行?
【问题讨论】:
-
(item.title && item.title.toLowerCase().includes(searchQuery)) || (item.description && item.description.toLowerCase().includes(searchQuery))怎么样
标签: javascript typescript ecmascript-6 filter