我有一个2D阵列。如您所料,它是由一个行数组组成的,每行中都有第二个数组形式的列。当我为特定的[Row] [Column]对分配值时,我希望有一个函数可以捕获已修改元素的索引,然后可以对它们进行处理。
我尝试使用代理,但是我只能使它拦截对行所做的更改,而不是行和列的组合。 即
row [3] = {1,2,3,4}; //有效!
row [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.
这很好,我很高兴能够管理此网格结构中的数据。我希望能够捕获分配值的时间并可以访问两个索引,以便执行验证和后续活动。任何指导将不胜感激。
答案 0 :(得分:0)
代理获取器/设置器仅响应顶级属性更改。参见https://github.com/geuis/bodega/blob/master/src/store.js
或者,您可以为每个父数组索引中的row
和/或column
之类的属性分配一个具有getter / setter方法的新Proxy对象。这样一来,您就可以检测到这些属性之一的更新时间。