Javascript поиск нескольких слов в массиве - PullRequest
1 голос
/ 15 апреля 2019

У меня есть вопросы на основе предыдущих вопросов здесь .

Там я использую Python для этого, но теперь я хочу преобразовать код в код Javascript.

Итак, в основном мои вопросы, скажем, у меня есть такой массив:

job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

И теперь я хочу выполнить поиск по нескольким ключевым словам в моем массиве, например:

КогдаЯ пытаюсь ввести ключевое слово teacher и sales , результат должен выглядеть следующим образом:

  • schoolteacher
  • учителя математики
  • продавец
  • менеджер по продажам

Итак, как это сделать в Javascript?

Ответы [ 3 ]

3 голосов
/ 15 апреля 2019

Используйте filter и some:

const job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher'];

const getJobs = (...words) => job_list.filter(s => words.some(w => s.includes(w)))
console.log(getJobs("teacher", "sales"));
1 голос
/ 15 апреля 2019

Вы можете сделать регулярное выражение, которое описывает то, что вы хотите, и filter соответственно с test():

let job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

let filtered = job_list.filter(job => /teacher|sales/.test(job))
console.log(filtered)
0 голосов
/ 15 апреля 2019

Вы можете использовать filter так:

job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

console.log(job_list.filter(word => word.includes("teacher") || word.includes("sales")))

Сложность: O (N)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...