Вы можете просто использовать оператор возврата в одну строку, включающий массив, состоящий из entry.description
, entry.keywords
и entry.title
, а затем использовать Array.prototype.some()
для возврата логического значения (true
/ false
) значение в зависимости от того, пройден ли какой-либо из тестов:
return [entry.description, entry.keywords, entry.title].some(string => string.toLowerCase().includes('Some search text'.toLowerCase());
Вот, в сущности, разбивка каждой части:
[entry.description, entry.keywords, entry.title].some(...)
Это делает анонимный массив, состоящий изentry.description
, entry.keywords
и entry.title
(порядок не имеет значения) и выполняет итерацию по нему методом Array.prototype.some()
.Согласно странице MDN , .some()
:
Метод some()
проверяет, прошел ли хотя бы один элемент в массиве тест, реализованный предоставленной функцией.
По существу выполняет итерацию по каждому элементу и в зависимости от обратного вызова от предоставленной функции и предоставляет логическое значение (true
, если хотя бы один элемент в массиве проходит тест, false
, если нет элементовпройти тест).
string => string.toLowerCase().includes('Some search text'.toLowerCase())
Это анонимная функция, содержащаяся в методе .some()
, которая принимает один параметр string
.Затем он возвращает логическое значение, в зависимости от результата метода .includes()
.Метод .includes()
возвращает другое логическое значение, в зависимости от того, содержит ли string
в нижнем регистре 'Some search text'
в нижнем регистре.Это глоток, но в двух словах, строка кода выше гласит:
Если string
в нижнем регистре включает 'Some search text'
в нижнем регистре, вернуть true
- в противном случае вернуть false
.
Надеюсь, это поможет вам!