Оператор js if не работает

Просто используйте обычный оператор if, чтобы проверить, что что-то равно или выше / ниже фактического результата.

Только получаю предупреждение об остальном ..

function generatePrice(b){
  var i;
  var a = [];
  var c = 24;
  var deg = Math.floor(360/c);
  var prev_deg=0;

  for(i=1; i < 25; i++){
      var tmp_deg = i * deg;
      a[i] = {'begin':prev_deg,'end':tmp_deg};
  prev_deg =  tmp_deg + 1;

  }

  if(a[22].begin >= b && a[22].end <= b){
    alert("u WON");
  }
  if(a[6].begin >= b && a[6].end <= b){
    alert("u WON");
  }
  if(a[13].begin >= b && a[13].end <= b){
    alert("u WON");
  }
  else {
    alert("Better luck next time");
  }
}

Что такое begin и end?

CodeF0x 10.08.2018 15:07

может быть, все условия ложные?

Luca Kiebel 10.08.2018 15:07

Отправьте все соответствующего кода, чтобы мы могли вам помочь.

Unmitigated 10.08.2018 15:07

Отредактирую и добавлю полный код

J. van Veltom 10.08.2018 15:09

Мы не сможем вам помочь, если вы не покажете нам данные, на которых работает ваша логика.

Scott Marcus 10.08.2018 15:09

Даже после редактирования вы не говорите нам, какой номер вы передаете, который становится b, так как мы можем вам помочь?

Jared Smith 10.08.2018 15:16

Пожалуйста, попробуйте использовать возможности отладки вашего браузера. Обратите внимание на то, что такое b и что возвращает каждое условие.

Sebastian Simon 10.08.2018 15:17

Ваши >= и <= необходимо поменять местами, и вам нужно добавить else if к первым операторам if. См. Этот рабочая рабочий пример.

Scott Marcus 10.08.2018 15:21
2
8
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Может тебе нужна переключенная проверка

begin <= b <= end

где b находится внутри интервала. Затем нужно выйти из функции

if (a[22].begin <= b && b <= a[22].end) {
    alert('Won!');
    return;
}
if (a[6].begin <= b && b <= a[6].end) {
    alert('Won!');
    return;
}
if (a[13].begin <= b && b <= a[13].end) {
    alert('Won!');
    return;
}
alert('Sorry!');

или связать условия с else

if (a[22].begin <= b && b <= a[22].end) {
    alert('Won!');
} else if (a[6].begin <= b && b <= a[6].end) {
    alert('Won!');
} else if (a[13].begin <= b && b <= a[13].end) {
    alert('Won!');
} else {
    alert('Sorry!');
}

function generatePrice(b) {
    var i;
    var a = [];
    var c = 24;
    var deg = Math.floor(360 / c);
    var prev_deg = 0;

    for (i = 1; i < 25; i++) {
        var tmp_deg = i * deg;
        a[i] = { 'begin': prev_deg, 'end': tmp_deg };
        prev_deg = tmp_deg + 1;
    }
    
    if (a[22].begin <= b && b <= a[22].end ) {
        alert("u WON");
        return;
    }
    if (a[6].begin <= b && b <= a[6].end ) {
        alert("u WON");
        return;
    }
    if (a[13].begin<= b &&  b <=a[13].end) {
        alert("u WON");
        return;
    }
    alert("Better luck next time");
}

generatePrice(80);

Все равно не сработает ..

J. van Veltom 10.08.2018 15:15

Я пробовал оба варианта, но предупреждение по-прежнему не отображается

J. van Veltom 10.08.2018 15:30

Другие вопросы по теме