Как показывают обсуждения в комментариях, первопричина должна быть:
вы не вернули true / false, очевидно, внутри if(this.search != null){}
, это вызывает return undefined
по умолчанию.
Поэтому мое мнение таково: используйте Javascript Array.every или Array.some. Также вы можете использовать для loop + break для реализации цели.
Ниже приведено одно простое демо для Array.every .
computed:{
filteredSmoothies: function(){
return this.smoothies.filter(smoothie => {
var stuff = smoothie.title.split(" ").concat(smoothie.description.split(" ")).concat(smoothie.category)
var sorted = [];
for (var i = 0; i < stuff.length; i++) {
sorted.push(stuff[i].toLowerCase());
}
console.log(sorted)
if(this.search != null){
var indivthings = this.search.split(" ")
return !indivthings.every(item => { // if false, means item exists in sorted
if(sorted.includes(item.toLowerCase())){return false} else {return true}
})
} else {
return true
}
})
}
или вы все равно можете использовать forEach, коды будут такими:
let result = false
var indivthings = this.search.split(" ")
indivthings.forEach(item => {
if(sorted.includes(item.toLowerCase())){result = true}
})
return result