Задача
Нужно проверить, существует ли слово в массиве к каком-либо варианте написания — символы строки могут быть в разных регистрах (строчные или заглавные).
Решение
Задачу проще всего решить путём приведения обеих строк к одному регистру. Обеих — это каких?
- строку, которую ввёл пользователь
- строку, которая есть в массиве данных
Сравниваются два варианта с одним приведением.
Пример
Предположим пользователь ввёл в строку поиска слово «мАШина«. Предположим у нас есть массив, по которому осуществляется поиск:
var massiv = ["Авто","Машина","Мото","Двигатель","Трансмиссия"]
В таком виде мы никак не найдём искомый элемент. Результат проверки наличия слова в массиве даст ложь — false
massiv.includes("мАШина")
false

Что это значит? Посимвольный разбор строки не дал 100% совпадения. Тупо не совпали последовательности символьных кодов.
"мАШина" - это [1084, 1040, 1064, 1080, 1085, 1072] "Машина" - это [1052, 1072, 1096, 1080, 1085, 1072]

Как быть?
В JavaScript для всех экземпляров класса String можно использовать метод toLowerCase(). Для нас это приведение символа к нижнему регистру.
Условие поиска будет выглядеть так:
massiv.filter(i => i.toLowerCase() == "мАШина".toLowerCase())
Мы искомое слово приводим к нижнему регистру и сравниваем с элементами массива тоже в нижнем регистре. Фильтр отловит нужные нам совпадения, если они будут.

Прелесть этого подхода в том, что фактически мы получаем НАЙДЕННОЕ ЗНАЧЕНИЕ как в массиве, а не как ввёл пользователь или как строка была преобразована.
Если совпадений не будет, тогда длина возвращённого массива будет равна нулю.

Всё это выражение можно обернуть функцией или можно написать свой метод
Собственный метод для экземпляров Array
Array.prototype.includesCase = function(str){ return this.filter(i => i.toLowerCase() == str.toLowerCase()) }
Проверяем работу метода:
massiv.includesCase("трансМиссиЯ")
Скриншот из браузера:

Информационные ссылки
Стандарт ECMAScript — Раздел «22.1.3.26 String.prototype.toLowerCase ( )» — https://tc39.es/ecma262/#sec-string.prototype.tolowercase