Здравствуйте! Есть большой словарь (но слова могут содержать цифры и вообще любые символы), нужно из него доставать слова, которые совпадают с введённым словом.
В лоб такое решение сделал
let words = [] //большой словарь
let value; //искомое слово
let result = words.filter(i => i.word.toLowerCase().indexOf(value.toLowerCase()) >=0 );
Допустим, я отфильтровал слова по букве "М", тогда в выборку попадут слова которые не только на эту букву начинаются, но и содержат её на других позициях.
Тогда я сортирую такой массив
result.sort((a, b)=>{
let min = Math.min(a.word.length, b.word.length);
for(let i = 0; i < min.length; i++) {
if(a.word[i] > b.word[i]) {
return 1;
}
if(a.word[i] < b.word[i]) {
return -1;
}
}
return 0;
});
Но это не дало результата, всё ещё лезут слова без буквы "М" на первой позиции.
Что я упускаю? (((