Javascript:将数组元素的地址传递给函数

标签 javascript arrays function pointers

在 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/

相关文章:

javascript - Heroku 上阻止加载 HTTP 混合内容

javascript - 加载外部脚本时匿名define()模块不匹配

javascript - 通过 onClick 选择语言

c++ - 与 MKL 一起使用的数组类型

c++ - 什么时候将数组转换为指针?

javascript - 计算每秒字节数(流畅的方式)

javascript - 声明三个具有两个值的变量?

function - 在 Rust 中实际需要 move 到函数的情况

c - 在 C 函数声明中, "..."作为最后一个参数有什么作用?

arrays - Spring MVC + RequestParam 作为 Map + 获取 URL 数组参数不起作用