javascript 指针数组或#define 缩写
javascript pointers array or #define for abbreviation
我有一个包含不同类型变量的多维数组,如下所示:
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
存储其他内容。
赋值不会 copy/clone 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));
好的,谢谢,我明白了。
我的问题是我在填充主数组之前创建了调用的变量。
这是因为我创建的是空数组结构,被程序事件依次填充
现在要解决这个问题,我会在第一个事件推送到主数组后创建连接变量。
非常感谢您的光临。
我有一个包含不同类型变量的多维数组,如下所示:
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
存储其他内容。
赋值不会 copy/clone 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));
好的,谢谢,我明白了。 我的问题是我在填充主数组之前创建了调用的变量。
这是因为我创建的是空数组结构,被程序事件依次填充
现在要解决这个问题,我会在第一个事件推送到主数组后创建连接变量。
非常感谢您的光临。