как сделать общий поиск из [массива] строки - PullRequest
2 голосов
/ 15 февраля 2020

У меня есть mongodb рецептов, и я хочу динамически создать общий поисковый запрос, в результате чего:

{ $all: [/potato/i, /onion/i, /garlic/i, /chicken/i] }

Без кавычек из строки типа:

const str = 'potato onion garlic chicken'

I ' ve предпринял попытку:

const arr = []
str.split(' ').forEach(element => {
  arr.push(`/${element}/i`)
})
console.log(arr)

Проблема в том, что я получаю строки:

//[ '/potato/i', '/onion/i', '/garlic/i', '/chicken/i' ]

Как я могу динамически создать этот запрос без строковых значений?

Ответы [ 2 ]

2 голосов
/ 15 февраля 2020

Попробуйте это

const str = 'potato onion garlic chicken'
const arr = []
str.split(' ').forEach(element => {
    // arr.push(`/${element}/i`)
    arr.push(new RegExp(element, 'i'))
})
console.log(arr)  // [ /potato/i, /onion/i, /garlic/i, /chicken/i ]

Вы можете проверить здесь

1 голос
/ 15 февраля 2020

Просто похожая версия, которую я пробовал:

const foodArr = 'potato onion garlic chicken';
queryArr = [];

foodArr.split(' ').forEach(foodElem => {
    queryArr.push(new RegExp(`${foodElem}`, 'i'));
});

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