Как проверить, содержит ли строка какой-либо элемент списка, и получить значение элемента?

#javascript #string #list #search #contains

Вопрос:

Я хочу определить, содержится ли строка из списка «веб-сайты» в другой строке «URL», и также получить значение строки из списка.

Приведенный ниже код может определить, можно ли найти строку из «веб-сайтов» в «url», но не удается определить, какая строка из списка вызвана .some().

Я получаю следующую ошибку: «Ошибка ссылки: веб-сайт не определен»

Есть ли какой-либо способ получить значение строки из «веб-сайтов» после обнаружения, что » url «содержит некоторое значение » веб-сайтов»?

 websites = [
'google',
'youtube',
'twitter',
]

var url = window.location.href  // e.g. returns www.google.com/soooomethingelse

if (websites.some(website => url.includes(website)))
{
   console.log(website)  // here I want to log 'google' from 'websites'
}
 

Ответ №1:

Я думаю, что намного проще было бы просто использовать .find метод, который возвращает элемент при выполнении условия в функции со стрелкой (функция со стрелкой возвращает true ).

 websites = [
  'google',
  'youtube',
  'twitter',
]

var url = window.location.href // e.g. returns www.google.com/soooomethingelse

var website = websites.find((el) => url.includes(el))
if (website) {
  console.log(website) // here I want to log 'google' from 'websites'
} 

Комментарии:

1. Да, это именно то, что я искал, большое вам спасибо!