Более простой способ создать if (test>= 0

#javascript #ajax

#javascript #ajax

Вопрос:

есть более простой способ перехватить 4 элемента (переменная test) и выдать 4 элемента (переменная i), если я продолжу с if (), это работает так, как я хочу, но это приведет к большому количеству if ().

 if(test >= 0 amp;amp; test <=3) {
    if(i >= 0 amp;amp; i <=3) {
        $(sample).appendTo($example);
    }
}

if(test >= 4 amp;amp; test <=7) {
    if(i >= 4 amp;amp; i <=7) {
        $(sample).appendTo($example);
    }
}

Example:
0  1  2  3 (variable i: 0 1 2 3)
4  5  6  7 (variable i: 4 5 6 7)
8  9  10 11 (variable i: 8 9 10 11)
12 13 14 15 (variable i: 12 13 14 15)
  

Ответ №1:

Похоже, вам нужна эта простая проверка:

     if (Math.floor(test/4) === Math.floor(i/4))
  

Вы можете разделить оба числа на 4, чтобы увидеть, совпадают ли они quotient . Это даст вам желаемое поведение (как предложено в OP).

Смотрите фрагмент кода ниже:

 var inSameBlock = (test, i) =>  Math.floor(test/4) === Math.floor(i/4);


console.log(inSameBlock(1, 2));
console.log(inSameBlock(1, 5));
console.log(inSameBlock(5, 5));
console.log(inSameBlock(5, 7));  

Комментарии:

1. Извините за ограниченную информацию, я пытаюсь перехватить индекс от 0 до 29 и дать первые 4 элемента (var i) для первых 4 элементов (var test) и с test index = 4 дать еще 4 элемента (var i). Что вы думаете о modulo? Я имею в виду использование%?

2. Я думаю, что частное (а не остаток) — это то, что вам нужно, согласно тому, что вы упомянули в описании. Вы можете удалить все ваши условия if и заменить их тем, что я предложил. Дайте мне знать, если это не сработает для определенного значения переменной test и variable i , и как бы вы хотели, чтобы это работало для этих значений. Пожалуйста, также разверните и попробуйте встроенный фрагмент кода.

Ответ №2:

Используйте Array.prototype.every. Используя этот подход, вам просто нужно обновить vals массив, если вы хотите, чтобы проверялось больше значений.

 var vals = [test,i]

if (vals.every(v => v >= 0 amp;amp; v <= 3)) {
   $(sample).appendTo($example);
}
if (vals.every(v => v >= 4 amp;amp; v <= 7)) {
   $(sample).appendTo($example);
}