Как в элементе массива найти совпадение

Например есть такой массив: let x = ["hello","world","anything","asdaf"]. Если, в input введено "h", то функция должна найти все элементы, которые начинаются с "h". и так далее, если в input введено "he" то элементы которые начинаются с "he" и плюс выделить совпаденные буквы жирным шрифтом в "out"

<input type="text" class = "input">
            <div class = "out">
                
            </div>



let z = document.querySelector(".out")
let y = document.querySelector(".input")
document.querySelector(".input").oninput = function(){
    for(i=0;i<x.length;i++){
        if(y.value == indexOf(x[i])){
            z.innerHTML = x[i]
        }
    }
}

Ответы (1 шт):

Автор решения: CbIPoK2513

Написал вот такую функцию для поиска

let x = ["hello", "world", "anything", "happy", "work", "web"];

function Search(str, arr) {
  let reg = new RegExp('^'+str, 'gi'), // Регулярка по поиска с начала строки
      res = []; // Будем набирать массив
  for(let i = 0; i < arr.length; i++) { // Проходим по всему представленному массиву
    if(arr[i].search(reg) != -1) // Если есть совпадение элемента массива по регулярке
      res.push(arr[i]); // то добавляем его в массив res
  }
  return res.length > 0 ? res : null; // По окончанию поиска возвращаем массив найденых совпадений, если нет - то NULL.
}

console.info(Search('h', x));
console.info(Search('wo', x));
console.info(Search('stack', x));

→ Ссылка