Лучший способ проверить, имеет ли строка значение из списка строк - PullRequest
0 голосов
/ 28 апреля 2020

Есть список строк, и я хочу проверить, имеет ли значение, которое я проверяю, оттуда.

Например, список "good", "amazing", "bad", "better", "worse"

и эта функция:

checkPositive = (str) => {
  if(str === "good" || str === "amazing" || str === "better") {
      return true;
    }
  return false;
}

Мой вопрос: возможно ли сделать это более эффективно, чем сейчас, мне не нравится, как выглядит это утверждение if.

Ответы [ 4 ]

2 голосов
/ 28 апреля 2020

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

checkPositive = str => ['good', 'amazing', 'better'].includes(str)
1 голос
/ 28 апреля 2020

Создать словарь:

let dict={
        good:  true
      , amazing: true
      , better: true
    };

checkPositive = str => { return dict[str]; } // dict[str] ? true : false, if you need actual boolean values 
0 голосов
/ 28 апреля 2020

Вы также можете использовать Regular_Expressions для проверки конкретной строки

const checkPositive = str => /good|amazing|better/.test(str.toLowerCase());

console.log(`For bad ` +checkPositive('bad'));
console.log(`For amazing `+checkPositive('amazing'));
0 голосов
/ 28 апреля 2020

Вы можете использовать indexOf, который вернет -1, если строка отсутствует в списке (при условии, что это массив)

const strList = ["good", "amazing", "bad", "better", "worse"]

checkPositive = (str) => {
  return strList.indexOf(str) !== -1 ? true : false;
}

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