Задать вопрос
@kostein
Сварщик - Верстальщик

Составное условие в if?

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

var arr = [[0,0,0],[0,1,0],[0,0,0]]
		arr.forEach(function(item,i){
			item.forEach(function(elem,j){
			    console.log(i, j)
			    if (((i == 0) && (j == 0 || 2)) || ((i == 2) && (j == 0 || 2))) {
                      console.log("It' Corner element")
			    } else {
                      console.log("It's another element")
			    }
			})
		})


в консоли :

0 0
It' Corner element
0 1
It' Corner element // Должен быть another !!!
0 2
It' Corner element
1 0
It's another element
1 1
It's another element
1 2
It's another element
2 0
It' Corner element
2 1
It' Corner element // Должен быть another !!!
2 2
It' Corner element


Это я чего-то не понимаю, или нужно искать другой путь?

пс. код не боевой..
  • Вопрос задан
  • 434 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Вот это j == 0 || 2 равнозначно j == 0 || true, что в свою очередь равнозначно true.
Скорее всего, вы хотели вот это: j == 0 || j == 2.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kostein Автор вопроса
Сварщик - Верстальщик
лёгким движением руки, портянка:
if (((i == 0) && (j == 0 || 2)) || ((i == 2) && (j == 0 || 2))) {

превращается в элегантные шорты :
if ((i == 0 || i == 2) && (j == 0 || j == 2)) {
;)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы