В SQL Server я мог бы сказать:
WHERE X IN(1,2)
Как вы могли бы переписать следующее в JavaScript:
if (X==1 || X==2) {}
В SQL Server я мог бы сказать:
WHERE X IN(1,2)
Как вы могли бы переписать следующее в JavaScript:
if (X==1 || X==2) {}
Используйте indexOf, чтобы узнать, находится ли x в массиве.
if([1,2].indexOf(x) !== -1)
Попробуйте использовать массив, а затем его .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
Нет серебряной пули. Будет несколько исправлений.
Если вы сделаете indexOf, как предлагают некоторые ответы, вам нужно помнить, что Array.indexOf не поддерживается во всех браузерах, поэтому вам нужно предоставить свой собственный резерв. Кроме того, это будет иметь производительность O(n), так как ему нужно пройти весь массив, что может быть не идеальным, если вы имеете дело с огромным массивом.
Если вы используете оператор in, как предлагают другие ответы, вам нужно помнить, что в свойствах объекта Javascript всегда есть строки, поэтому не ожидайте, что проверка === будет работать, если вы проверяете числа.
В этом конкретном примере, который вы предположили, я бы просто пошел на старый добрый if (X==1 || X==2).
Оператор javascript
if (foo == a || foo == b) {
//
}
может быть записано как
if (foo in {a:true, b:true}) {
//
}
if (x in {1:true, 2:true}) { }
Или, если вы хотите отвлечь его, вы можете сделать это следующим образом http://snook.ca/archives/javascript/testing_for_a_v
функция oc (a) { var o = {}; для (var я = 0; i
Тем не менее... не самая масштабируемая вещь, которую нужно делать
Я знаю, что у нас есть функция in_array() в PHP, но я никогда не слышал о подобной функции в JS. Я думаю, вы должны сделать это по-старому:
function contains(a, obj) {
var i = a.length;
while (i--) {
if (a[i] === obj) {
return true;
}
}
return false;
}
Использование Array .includes method.
if ([1, 2].includes(x)) {
// array has x
}
Требуется Javascript 1.6
if ((new Array(1, 2)).indexOf(X) != -1) {
}
Функция преобразования массива в литерал объекта
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']) ) { ... }
Просто весело:
if (X*X+1*2 == (1+2)*X) {}
или самоочевидность:
if ((X-1)*(X-2) == 0) {}