我正在试图弄清楚如何通过它的索引号访问数组中的项目。我编写了一个脚本,它将生成一个包含一些变量的数组。 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;
}
谢谢!
答案 0 :(得分:2)
如果我的问题得到解决,我不能100%确定。
但有没有办法在数组中找到值?
问题是你不能用points
创建一个数组,因为它是一个字符串。
尝试一下林克:
Fpoints = split(points, ',');
然后,您可以使用循环迭代Fpoints,或使用索引函数获取给定值的索引。
for (i = 0; i < Fpoints.length; i++) {
print(Fpoints[i]);
}