对于自动完成输入,我在输入过程中搜索项目属性。现在我想改进这段代码
filterProjects(value: string) {
return this.projects.filter(
project =>
project.key.toLowerCase().indexOf(value.toLowerCase().trim()) >=
0 ||
project.name.toLowerCase().indexOf(value.toLowerCase().trim()) >=
0 ||
project.description?.toLowerCase().indexOf(value.toLowerCase().trim()) >=
0
);
}
有了这个:
filterProjects(value: string) {
return this.projects.filter(project =>
[project.key, project.name, project.description].map(
str => str?.toLowerCase().indexOf(value.toLowerCase().trim()) >= 0
)
);
}
我使用可选链接,因为description
可以为空或未定义。
但它不起作用,这意味着该函数总是返回未修改的数组。此外,当在一项的描述中找到该值时,该数组不会被过滤到仅该项。
除了使用诸如此类的“旧”检查之外,还有什么解决方案if (str !== undefined)
?