【发布时间】:2023-03-08 11:11:01
【问题描述】:
我试图在 Vue 的过滤方法中显示数组中的消息为空。 但是,似乎我的计算函数仍然返回一个空对象数组(如果我搜索不存在的东西)
我希望它只返回实际具有值的对象 - 应该过滤掉空的对象?
所以如果我搜索“fjhdsfjsdfjsd”ex,它仍然返回大约 200 个项目,只是空对象,它不应该返回吗?
计算函数如下:
filteredAlarms: function () {
let filter = {};
let searchString = this.search_string.toLowerCase();
Object.keys(this.eventLog).forEach(key => {
filter[key] = this.eventLog[key].filter(item => {
let systemName = item.system_name.toLowerCase();
if(item.type.includes("alarm") && systemName.includes(searchString)) {
return item;
}
});
});
return filter
},
【问题讨论】:
-
注意
.filter回调应该返回一个布尔值。总是。有时不是一个项目,有时是未定义的。 -
你能提供一些示例输入和你得到的输出吗?您的代码应该返回一个空数组对象,而不是相反。
标签: javascript ecmascript-6 vue.js