Как мне захватить индексы, когда значение назначено в 2D массиве? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть 2D-массив. Как и следовало ожидать, он состоит из массива строк со столбцами в виде второго массива в каждой строке. Когда я присваиваю значение определенной паре [Row] [Column], я хотел бы иметь функцию, которая может захватывать индексы для измененного элемента и затем иметь возможность что-то с ними делать.

Я пытался использовать прокси, но я могу перехватывать только те изменения, которые внесены в строку, а не комбинацию строки и столбца. т.е.

строка [3] = {1,2,3,4}; // работает! * * 1005

строка [3] [2] = 42; // не работает: /

Я много искал в SO, W3Schools, Google и т. Д., Но не могу найти ничего, что отвечало бы этому конкретному требованию.


    var row=new Array();
    for(var loop=0; loop<10;loop++) //Create 10 rows
    {
        row.push(new Array(10)); //10 columns per row for the sake of example
    }

    row[0][0]="Added a Value at (0,0)";
    row[3][7]="Added a value at (3,7)";

    console.log(row[3][7]); //outputs "Added a value at (3,7)" as expected.

Это прекрасно работает, и я счастлив, что могу управлять данными в этой решетчатой ​​конструкции. Я хотел бы иметь возможность фиксировать, когда значение назначено, и иметь доступ к двум индексам, чтобы я мог выполнять проверку и последующие действия. Любое руководство будет с благодарностью.

1 Ответ

0 голосов
/ 11 июля 2019

Прокси-геттеры / сеттеры реагируют только на изменения свойств верхнего уровня. Смотри https://github.com/geuis/bodega/blob/master/src/store.js

В качестве альтернативы вы можете назначить новый объект Proxy, который имеет метод получения / установки для свойства, такого как row и / или column в каждом индексе родительского массива. Это позволит вам определить, когда обновится одно из этих свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...