Подтвердить что ты не робот

Проверка значения в массиве Javascript

В SQL Server я мог бы сказать:

WHERE X IN(1,2)

Как вы могли бы переписать следующее в JavaScript:

if (X==1 || X==2) {}
4b9b3361

Ответ 1

Используйте indexOf, чтобы узнать, находится ли x в массиве.

if([1,2].indexOf(x) !== -1)

Ответ 2

Попробуйте использовать массив, а затем его .indexOf().

 var myNumbers = [1,2];
 var foo = 4;
 var bar = 1;

 var exists = (myNumbers.indexOf(bar) > -1); //true
 var notExists = (myNumbers.indexOf(foo) > -1); //false

Ответ 3

Нет серебряной пули. Будет несколько исправлений.

Если вы сделаете indexOf, как предлагают некоторые ответы, вам нужно помнить, что Array.indexOf не поддерживается во всех браузерах, поэтому вам нужно предоставить свой собственный резерв. Кроме того, это будет иметь производительность O(n), так как ему нужно пройти весь массив, что может быть не идеальным, если вы имеете дело с огромным массивом.

Если вы используете оператор in, как предлагают другие ответы, вам нужно помнить, что в свойствах объекта Javascript всегда есть строки, поэтому не ожидайте, что проверка === будет работать, если вы проверяете числа.

В этом конкретном примере, который вы предположили, я бы просто пошел на старый добрый if (X==1 || X==2).

Ответ 5

if (x in {1:true, 2:true}) { }

Или, если вы хотите отвлечь его, вы можете сделать это следующим образом http://snook.ca/archives/javascript/testing_for_a_v

функция oc (a) { var o = {}; для (var я = 0; i

Тем не менее... не самая масштабируемая вещь, которую нужно делать

Ответ 6

Я знаю, что у нас есть функция in_array() в PHP, но я никогда не слышал о подобной функции в JS. Я думаю, вы должны сделать это по-старому:

function contains(a, obj) {
  var i = a.length;
  while (i--) {
    if (a[i] === obj) {
      return true;
    }
  }
  return false;
}

Ответ 8

Требуется Javascript 1.6

if ((new Array(1, 2)).indexOf(X) != -1) {
}

Ответ 9

Функция преобразования массива в литерал объекта

function oc(a)
{
 var o = {};
 for(var i=0;i<a.length;i++)
 {
  o[a[i]]='';
 }
  return o;
}

Вы можете вызвать функцию, например

if( name in oc(['Tom', 'Harry','Sue']) ) { ... }

Ответ 10

Просто весело:

if (X*X+1*2 == (1+2)*X) {}

или самоочевидность:

if ((X-1)*(X-2) == 0) {}