【发布时间】:2019-07-11 01:55:42
【问题描述】:
我有一个二维数组。如您所料,它由一个行数组组成,每行包含第二个数组形式的列。当我为特定的 [Row][Column] 对分配值时,我希望有一个函数可以捕获已修改元素的索引,然后能够对它们做一些事情。
我尝试使用代理,但我只能让它拦截对 Row 所做的更改,而不是 Row 和 Column 的组合。 即
行[3] = {1,2,3,4}; //有效!
行[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.
这很好用,我很高兴能够在这个网格结构中管理数据。我希望能够捕获何时分配值并访问两个索引,以便我可以执行验证和后续活动。任何指导将不胜感激。
【问题讨论】:
-
var row=new Array();可以是var row = []; -
当然可以。我正在使用 new Array() 进行实例化以防止(具有讽刺意味的)堆栈溢出。上面的代码 sn-p 是一个示例,只是为了清楚地演示数组的结构。不过,我认为这对手头的问题没有任何影响。
-
javascript 中没有堆栈溢出之类的东西。 Javascript 数组是动态对象。
-
那谢谢你。我假设在使用 new Array(n) 实例化时会发生初始分配。
标签: javascript multidimensional-array proxy