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

javascript pointers array or #define for abbreviation

本文关键字:表示 缩写 #define 指针 数组 Javascript      更新时间:2023-09-26

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

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

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

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

// 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);

非常感谢!晚上好。

由马可。

如果你这样做

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));

好的,谢谢我明白了。我的问题是我在填充主数组之前创建了一个变量。

这是因为我创建了空数组结构,但是被程序事件依次填充。

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

非常感谢您的光临。