Моя проблема связана с возможностью читать двумерный массив внутри a для l oop. Я прочитал много вещей о закрытии в javascript, но не могу найти способ применить их в этой ситуации
Некоторая информация, чтобы лучше понять мой код: tempArray
- Сохраняется с использованием фабрики ... У меня есть два установленных метода, и я читаю и устанавливаю их
- Это двумерный массив, определенный следующим образом
for (var i = 0; i < MAX_DIM; i++) {
$scope.squareArray[i]= new Array(10);
count++;
}
Инициализируется следующим образом
for (var i = 0; i < MAX_DIM; i++)
for (var j = 0; j < MAX_DIM; j++)
$scope.squareArray[i][j] = "X";
В директиву я сохраняю в tempArray мой двумерный массив, подобный этому
tempArray = abcModel.getModel ("Квадраты");
Где abcModel.getModel определяется с помощью abcModel.setModel для моей фабрики
В этом двумерном массиве я храню некоторую информацию о сетке квадратов , Я рисую квадратную сетку, используя директиву, которая имеет функцию для инициализации холста на основе значения в двумерном массиве
Это часть кода, в которой я пытаюсь прочитать хранилище значений в массиве.
MAX_DIM = 10;
for (var x = 0 ; x < MAX_DIM ; x++)
for (var y = 0 ; y < MAX_DIM ; y++)
{
if (tempArray[y][x] == 'X')
fillColor = "#EAD5C5";
else if (tempArray[y][x] == 'W')
fillColor = "#CBA76A";
ctx.rect(x*50,y*50,50,50);
ctx.fillStyle = fillColor;
ctx.fill();
ctx.lineWidth = "2";
ctx.strokeStyle = "#13B2DD";
abcModel.setModel("count",abcModel.getModel("count") + 1);
ctx.stroke();
}
Теперь, используя этот код, можно правильно нарисовать все прямоугольники на холсте (так что x и y зацикливаются правильно), но я читаю каждый раз, когда значение сохраняется в последнем элементе массива, например Функция использует только последние значения как для х, так и для у. Я знаю, что код ведет себя таким образом, потому что следующее представление в моем веб-приложении зависит от значений элементов в массиве.
Я нашел кое-что о закрытии на javascript и проблемном шве, связанном с что, но я не могу понять, как решить проблему в этой ситуации
Я пытался использовать let вместо var, а также использовать функцию закрытия, но ничего не работает
Не могли бы вы помочь мне?