javascript指针数组或#define缩写

标签 javascript arrays pointers defined

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

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

关于javascript指针数组或#define缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38839546/

相关文章:

javascript - JS 脚本不适用于使用 jQuery 的 .load() 加载的 div

python - 基于最小/最大值的 Numpy 动态数组切片

mysql - PDO、MySQL 将获取的数据插入数组

c++ - 在函数之间的堆上传递数组时导致此运行时错误的原因,c++

javascript - Tinymce 切换格式,格式化按钮而不是编辑器

javascript - 在 Google 图表中显示单位

PHP 和 JavaScript - 重定向到动态 URL

arrays - 如何在 Matlab 上进行矩阵运算?

c - 使用指针遍历内存

c - 学习 'Linked lists' 的速度太快,但又不太熟悉指针? #C语言初学者