1

我试图弄清楚如何通过索引号访问数组中的项目。我编写了一个脚本,它将生成一个带有一些变量的数组。imageJ 邮件列表存档中有一个旧脚本(如下所示),它能够为数组中的已知值打印给定的索引值,但是有没有办法在数组本身中找到该值?即,如果我让用户输入应该在数组中的值的数量,我可以让宏从中调用数组中的值吗?

我的数组生成器:

Dialog.create("Time Point Input");
Dialog.addNumber("How many time points?", 0)
Dialog.addString("What are your time points (comma separated, no spaces)?:",0);
Dialog.show();
time = Dialog.getNumber();
points = Dialog.getString();
Fpoints = newArray(points);

读数可能类似于:

time = 4
points = 5,10,12,27

Fpoints[0] = 5
Fpoints [1] = 10
Fpoints [2] = 12
Fpoints [3] = 27

从数组数值调用索引示例代码:

arr = newArray(1,5,3,12); 
i = index(arr, 5); 
print("index = "+i); 

  function index(a, value) { 
      for (i=0; i<a.length; i++) 
      if (a[i]==value) return i; 
  return -1; 
 } 

谢谢!

4

1 回答 1

2

我不是 100% 确定我的问题是否正确。

但是有没有办法在数组本身中找到值?

问题是你不能创建一个数组,points因为它是一个字符串。尝试链接:

Fpoints = split(points, ',');

然后您可以使用循环迭代 Fpoints,或者使用您的索引函数来获取给定值的索引。

for (i = 0; i < Fpoints.length; i++) {
    print(Fpoints[i]);
}
于 2018-01-11T20:50:01.310 回答