А так:
pattern = new RegExp(pattern.trim().replace(/\s+/g, "|"), "gi");
return arr.filter(function(el) {
//return Object.values(el).some(function(val) {
return pattern.test(Object.values(el)[0])
//})
})
А отображать и надо одно совпадение, которое начинается с первого введенного в поиске?