не могу изменить значение глобальной переменной javascript

Дается массив args, с помощь счетчиков ведется подсчет единиц.

Но в конце выводится значение счетчиков равняется нулю. Хотя единицы есть!

В чем может быть проблема? Такоe ощущение что счетчики каждый раз обнуляются. Как этого избежать? Бьюсь уже 1,5 часа.

var args = [
  [1, 1],
  [1, 1],
  [1, 1],
  [1, 1],
];
var counter_first = 0;
var counter_second = 0;
for (b of args) {
  for (a of b) {

    if (a[0] == 1 && (counter_first % 2 == 0)) {
      a[0] = -1;

    }
    if (a[0] == 1) {
      counter_first = counter_first + 1;
    }

    if (a[1] == 1 && (counter_second % 2 == 0)) {
      a[1] = -1;


    }
    if (a[1] == 1) {
      counter_second = counter_second + 1;
    }

  }
  console.log(counter_first + " counter_first");
  console.log(counter_second + " counter_second")

}


Ответы (1 шт):

Автор решения: Igor

Вы меняете элементы массива на -1, а потом проверяете, не равны ли они единице. Не равны.

var args = [
  [1, 1],
  [1, 1],
  [1, 1],
  [1, 1],
];
var counter_first = 0;
var counter_second = 0;
for (a of args) {
//  for (a of b) {

    if (a[0] == 1 && (counter_first % 2 == 0)) {
//      a[0] = -1;
    }
    if (a[0] == 1) {
      counter_first = counter_first + 1;
    }
    if (a[1] == 1 && (counter_second % 2 == 0)) {
 //     a[1] = -1;
    }
    if (a[1] == 1) {
      counter_second = counter_second + 1;
    }
//  }
  console.log(counter_first + " counter_first");
  console.log(counter_second + " counter_second")
}

→ Ссылка