@df12

Как найти слово по буквам?

Здравствуйте. Есть слова "Азбука", "Ананас", "ЗЕЛЕНЬ" пользователь в интупе вводит "аБ", тогда нам подходит слово "азбука", а если например ввёл "з" тогда это два слова "Зелень" и "Азбука" и тд. Подскажите, пожалуйста, не пойму как правильно будет его отсортировать, создать фильтр.
  • Вопрос задан
  • 119 просмотров
Решения вопроса 2
@wonderingpeanut
т.к. нам надо соответствие по всем вводимым символам, вне зависимости от их порядка, нужно разбить вводимые символы в массив.
дальше нужно найти строки, в которых есть все символы введенного значения.
То есть для каждого введенного символа нужно проверить, содержит ли его строка.

Что-то вроде этого:
const arr = ['Hello', 'World', 'John Doe', 'Hakuna Matata', 'Mosakusa'];
let input = 'da' 
let arrInput = input.split(''); // ['d', 'a']
arr.filter(str => arrInput.every(char => str.includes(char))); // []
input = 'ao', arrInput = input.split('');
arr.filter(str => arrInput.every(char => str.includes(char))); // ['Mosakusa']

Прошу заметить, что это не самое оптимальное решение в плане оптимизации. Очень вероятно, что можно сделать лучше
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const words = ['Азбука', 'Ананас', 'Зелень'];
const letters = 'аБ'.toLowerCase().split('');
const result = words.filter(
  (word) => {
    const lWord = word.toLowerCase();
    return letters.every((letter) => lWord.includes(letter))
  }
);
console.log(result);
// Array [ "Азбука" ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы