'Array.filter() is not working - the filter isn't executing
I am trying to filter an array of objects with 3 filters. The first two execute as expected but the last one does not execute at all. There is a lot of code in total so here is the Github link: Github repository
function FormatSearch() {
return search.value.toLowerCase().replace("č", "c").replace("ć", "c").replace("š", "s").replace("ž", "z")
}
function FormatLocation() {
return location.value.toLowerCase().replace("č", "c").replace("ć", "c").replace("š", "s").replace("ž", "z")
}
let filtered = allPosts
//filter po imenu/opisu
.filter(post => post.title.includes(FormatSearch()) || post.description.includes(FormatSearch()))
//filter po kategoriji
.filter(post => filters.includes(post.category) || filters.length == 0)
//filter po lokaciji
.filter(post => async function(){
let owner = await post.getOwner()
return Boolean(owner.info[1].includes(FormatLocation()) || FormatLocation() == "")
})
document.getElementById("posts").innerHTML = ""
filtered.forEach(post => {
post.addPost()
})
Solution 1:[1]
Agree to VLAZ, you can choose return a promise array and Promise.all them or use async/await in a for loop which basically has the same speed as filter.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ray Ding |
