javascript指针数组或#define表示缩写

时间:2016-08-08 22:40:02

标签: javascript arrays pointers defined

我有一个包含不同类型变量的多维数组,如下所示:

array = [  [[file, name, visible], [ArrayPoint, ArrayOther], ...],  [[file2,...], ..]  ]

现在在我的代码中多次我必须调用(例如)一个位于myArray [X] [1] [0]中的点的数组()。

我想知道是否有可能创建定义或指向数组位置的指针以缩短代码,因为我经常不记得变量位置。

// access the value at the address available in pointer
var *pointArray = &myArray[X][1][0];

// my code
*pointArray.push(pint_x, point_y);

============== VS ==============

myArray[X][1][0].push(pint_x, point_y);
非常感谢你!晚安。

由Marco。

2 个答案:

答案 0 :(得分:1)

如果你这样做

var pointArray = myArray[X][1][0];

它将在myArray[X][1][0]处复制对数组的引用。因此,pointArray元素的任何后续突变也会改变myArray[X][1][0]的元素。

请注意,将新值重新分配给pointArray作为一个整体不会影响myArray[X][1][0],因为这只会使pointArray存储其他内容。

分配不会在JavaScript中复制/克隆对象,它们只会使左侧的变量引用与右侧相同的对象。

var outer = [[0,1,2],[3,4,5]];
var inner = outer[1];

inner.push(6);
console.log(JSON.stringify(outer));

inner = [];
console.log(JSON.stringify(outer));

答案 1 :(得分:0)

好的,谢谢,我理解。 我的问题是我在填充主数组之前创建了变量。

这是因为我创建了空数组结构,但是由程序事件连续填充。

现在解决问题我在第一个事件推送到主数组后创建了连接变量。

非常感谢你的可用性。