在 FORTRAN 和 C++ 中,可以将特定数组元素的地址传递给函数。例如,在主例程中,WA1 是一个大小为 25 的工作数组,offset 是一个整型变量,表示距 0 索引的偏移量。假设偏移量目前为 6。
子例程的声明可能如下所示:
void Array_Manip1(double* WorkArray1){
. . .
当在主程序中调用子例程时,调用可能如下所示:
Array_Manip1(&WA1[offset]);
通过这样做,我可以在子例程中从 0 索引开始索引 WorkArray1,但知道它实际上是 WA1[6]。
例如-
for (int i = 0; i < 19; ++i)
WorkArray1[i] = whatever computation is required.
要在 Javascript 中执行此操作,我想可以将完整数组传递到子例程中,再加上一个变量来保存偏移量。然后在子例程中,必须将偏移量添加到数组索引值中。
e. G。 -
for (int i = 0; i < 19; ++i){
WorkArray1[offset + i] = whatever computation is required.
但是现在我要向子例程中传递一个变量,并且每次循环都必须将偏移量添加到数组索引中。
有更好的方法在 Javascript 中做到这一点吗? 有没有办法模仿 C++ 将特定数组元素的地址传递给函数的能力?
最佳答案
最干净的方法是拼接数组并从当前索引开始传入一个子数组。这样您仍然有一个引用资料,并且一切都保持干净。
但是不行,大多数高级语言中的数组不允许您引用单个元素然后返回数组。由于多种原因,对于那些底层数据甚至可能不连续存储的语言来说,这是危险的。 JavaScript也不异常(exception),你可以传入一个数组和一个索引,或者一个子数组,但是你不能传入对数组中元素的引用,并在传入后返回到数组。
关于Javascript:将数组元素的地址传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270488/