Как проверить переменную на вхождение в массив

187
28 апреля 2018, 17:57

Есть массив, который приходит с сервера:

testRepliesTypes = ["button", "button","option"];

И есть массив допустимых значений:

var testPossibleReplies = ["button", "option"];

for (i = 0; i < testRepliesTypes.length; i ++){
tests["ava reply types are OK"] = testPossibleReplies.indexOf(testRepliesTypes[i]) > 0;
}

Такая проверка работает, только если в массиве допустимых значений порядок значений такой, как выше. Если поменять местами "button" и "option", проверка не работает.

Как можно решить эту проблему?

Answer 1

Используйте, например, метод .every() и .includes()

var tests = [] 
var testRepliesTypes = ["button", "button", "option"] 
var testPossibleReplies = ["button", "option"] 
 
tests["ava reply types are OK"] = testRepliesTypes.every(function(x) { 
  return testPossibleReplies.includes(x) 
  // или return testPossibleReplies.indexOf(x) > -1 
}) 
 
console.log(tests["ava reply types are OK"])

READ ALSO
Вызов функции при загрузке данных в поле из сервера

Вызов функции при загрузке данных в поле из сервера

Есть такая структура select со странами загрузка данных стран с сервера

208
Нужно ли запускать npm install, если все пакеты установлены заранее?

Нужно ли запускать npm install, если все пакеты установлены заранее?

Нужно апдейтнуть проект на компах с запретом выхода в сетьВсе npm пакеты уже установлены, будет производиться только замена исполняющего...

185