JS Проблема с циклом

351
25 декабря 2016, 22:15

Есть такой код:

function turnBot(){
  var min = 15;
  for(var i = 0; i < cardN[0].length; i++){
    var data = explode(".", cardN[0][i]);
    var number = data[0];
    var mast = data[1];
    console.log('number' + number + 'min:' + min);
    if(number < min){
      min = number;
      console.log('MIN:' + min);
      var cardName = number + mast;
    }
  }
  clearCard(cardName);
  addCardForTable(cardName);
  enabledTurnPlayer();
}

Пытаюсь в функции выполнить условие if(number < min), но оно не выполняется:

Скрин кода:

Вопрос: почему не выполняется условие?

Answer 1

Возможно, у вас есть проблема с типами. Ошибка заключается в том, что вы сравниваете строки, что есть ошибка, ибо:

"8"<"10"
false
8<10
true

Попробуйте явно преобразовать значения в int:

...
if (parseInt(num) < parseInt(min)) {
...

PS. Также рекомендую вам пользоваться дебагером и брякпоинтами (есть в современных браузерах из коробки), либо делать вывод более красивым. Пример красивого вывода:

console.log("Number:", number, "; Min:", min)

С таким выводом вы можете явно проследить тип переменной, а не терять его во время преобразований.

READ ALSO
В чем можно хранить данные в приложении Electron?

В чем можно хранить данные в приложении Electron?

Мне нужно быстро сохранять и получать данные из хранилищаНа данный момент я хочу использовать electron-json-storage

396
Одна из точек входа не попадает в сборку

Одна из точек входа не попадает в сборку

При сборке проекта содержимое последней точки входа не попадает в итоговую сборку:

341
Как вызвать метод?

Как вызвать метод?

ЗдравствуйтеПомогите, пожалуйста, разобраться в том, как вызвать метод, который привязан к событию нажатия кнопки

379