Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не правильно работает условие... (https://javascript.ru/forum/misc/61135-ne-pravilno-rabotaet-uslovie.html)

x1ds 05.02.2016 20:47

Не правильно работает условие...
 
Почему не срабатывает else ?
if (fn(m1,step_array) == true) {
                $(".result1").css('display', 'block');
            }
            else if (fn(m2,step_array) == true) {
                $(".result2").css('display', 'block');
            }
            else if (fn(m3,step_array) == true) {
                $(".result3").css('display', 'block');
            }
            else if (fn(m4,step_array) == true) {
                $(".result4").css('display', 'block');
            }
            else if (fn(m5,step_array) == true) {
                $(".result5").css('display', 'block');
            }
            else { alert('ok'); }

Mess4me 05.02.2016 20:52

x1ds,
а что возвращает fn(m1,step_array)?

x1ds 05.02.2016 20:57

true

Mess4me 05.02.2016 21:26

x1ds,
ну вот Вы и ответили на вопрос который задавали.
Если
Цитата:

Сообщение от x1ds
fn(m1,step_array) == true

справедливо то выполняется
Цитата:

Сообщение от x1ds
          $(".result1").css('display', 'block');

, если нет - проверяет дальше
Цитата:

Сообщение от x1ds
       else if (fn(m2,step_array) == true) {

и т д , если ни одно из условий не справедливо то выполнится строка
Цитата:

Сообщение от x1ds
 else { alert('ok'); }


x1ds 06.02.2016 03:25

Только вот else все равно не выполняется...

Mess4me 06.02.2016 03:56

x1ds,
а какой должен выполниться из else ?

if (false == true) {
        $(".result1").css('display', 'block');
    }
    else if (false == true) {
        $(".result2").css('display', 'block');
    }
    else if (false == true) {
        $(".result3").css('display', 'block');
    }
    else if (false == true) {
        $(".result4").css('display', 'block');
    }
    else if (false == true) {
        $(".result5").css('display', 'block');
    }
    else {
        alert('ok');
    }

x1ds 06.02.2016 14:05

Тут else почему то не выполняется
Выкладываю весь код
var m1 = [[1],[1,2],[1],[1],[1]];
  var m2 = [[2],[1, 4],[4],[1, 2, 3],[2, 3, 4]];
  var m3 = [[1, 2],[1, 3],[1, 3, 5],[3, 4],[1]];
  var m4 = [[2],[4, 5],[2],[3],[2, 3, 4]];
  
    
    function fn(a, b) {
        return a.every(function(a, i) {
            return a.some(function(a) {
                return a == b[i]
            })
        })
    };

   step_array = new Array(step1,step2,step3,step4,step5);
            if (fn(m1,step_array) == true) {
                $(".result1").css('display', 'block');
            }
            else if (fn(m2,step_array) == true) {
                $(".result2").css('display', 'block');
            }
            else if (fn(m3,step_array) == true) {
                $(".result3").css('display', 'block');
            }
            else if (fn(m4,step_array) == true) {
                $(".result4").css('display', 'block');
            }
            else if (fn(m5,step_array) == true) {
                $(".result5").css('display', 'block');
            }
            else { alert('x2'); }

рони 06.02.2016 14:23

Цитата:

Сообщение от x1ds
step1

это что?

x1ds 06.02.2016 15:51

step1,step2 ... это числа которые берутся из форм..
К примеру step1 = 3

Mess4me 06.02.2016 16:27

Цитата:

Сообщение от x1ds
  function fn(a, b) {
        return a.every(function(a, i) {
            return a.some(function(a) {
                return a == b[i]
            })
        })
    };

В этом условии вообще какая логика должна быть?


Часовой пояс GMT +3, время: 10:51.