@CallMoskal

Как создать перебор массива?

Мне нужно создать код, который будет считать потенциалы для решения транспортной задачи.
Часть кода создавал другой человек, как отдельное задание. Мне же нужно вставить в него часть с расчетом уравнений.
Но возникает ошибка, когда загоняю данные в массив.
var klick_button = document.getElementById('ras');
		klick_button.onclick = function() {

				var cel_fun = 0;

				var rows = document.getElementById("x").value,
				columns = document.getElementById("y").value;
				for(var i = 0; i < rows; i++){
					for(var j = 0; j < columns; j++){
						var value_1, value_2;

						value_1 = parseInt(document.getElementById('input-' + i + "-" + j).value);
						value_2 = parseInt(document.getElementById('input2-' + i + "-" + j).value);

						cel_fun = cel_fun + (value_1 * value_2);

						
						var u=[];
						var v=[];
						var mat=[
							[],
							[],
						];
						n=n+1;
						if (value_1 != 0) {
							mat[n][0]=u[i];
							mat[n][1]=v[j];
							mat[n][2]=value_2;
						}
					}
				}
			alert(mat[0][2]);
		}

value_1 и value_2 это данные которые вписывает пользователь в таблицу.
Когда во время перебора использую mat[i][2], то функция работает, но это правильно, так как мне объем должен быть больше.
Когда записываю mat[n][2], то функция просто не работает и ничего не выводит.
Подскажите в чем проблема и каким методом оптимальнее решать систему уравнений, количество которых зависит от размера таблицы.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Если я правильно понял, то тебе следует вынести объявление матирц за цикл for
var klick_button = document.getElementById('ras');
    klick_button.onclick = function() {

        var cel_fun = 0;
            var u=[];
            var v=[];
            var mat=[
              [],
              [],
            ];

        var rows = document.getElementById("x").value,
        columns = document.getElementById("y").value;
        for(var i = 0; i < rows; i++){
          for(var j = 0; j < columns; j++){
            var value_1, value_2;

            value_1 = parseInt(document.getElementById('input-' + i + "-" + j).value);
            value_2 = parseInt(document.getElementById('input2-' + i + "-" + j).value);

            cel_fun = cel_fun + (value_1 * value_2);

            
            n=n+1;
            if (value_1 != 0) {
              mat[n][0]=u[i];
              mat[n][1]=v[j];
              mat[n][2]=value_2;
            }
          }
        }
      alert(mat[0][2]);
    }
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы