gpt4 book ai didi

javascript - 为什么这个数组不为空?

转载 作者:行者123 更新时间:2023-12-03 03:31:17 27 4
gpt4 key购买 nike

我试图在 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

},

最佳答案

<强> Array.prototype.filter 必须返回一个 bool 值。只需删除 ifreturn item 部分,然后返回您的 if 条件:

filteredAlarms: function () {
let searchString = this.search_string.toLowerCase();
let eventKeys = Object.keys(this.eventLog);

return eventKeys.reduce((filter, key) => {

let items = this.eventLog[key].filter(item => {
let systemName = item.system_name.toLowerCase();
return item.type.includes("alarm") && systemName.includes(searchString);
});

return Object.assign(filter, { [key]: items });
}, {});
}

关于javascript - 为什么这个数组不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46093153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com