递归函数 Javascript concat 数组结果 - ImageJ
Recursive function Javascript concat array result - ImageJ
我尝试为 ImageJ 制作一个 javascript 代码,其目标是允许我 select 一个目录,并且 return 我在目录中的所有 jpg 和 jpeg 文件和子目录。
我已经完成了这段代码,它对直接子目录很有效,他在子目录上很好地调用了 getJpeg(我已经用一些 IJ.log 验证了它),但是 jpeg 数组没有与递归调用的结果连接
你有想法吗?
importClass(Packages.ij.IJ);
importClass(Packages.ij.plugin.frame.RoiManager);
importClass(Packages.ij.gui.GenericDialog);
importClass(Packages.ij.io.OpenDialog);
importClass(Packages.java.io.File);
var dirstr = IJ.getDirectory("Choose the stacks folder");
var jpeg = getJpeg(dirstr);
for (var i = 0; i < jpeg.length; i++) {
IJ.log(jpeg[i]);
}
function getJpeg(dirst) {
var dir = new java.io.File(dirst);
var names = dir.listFiles();
var jpeg = new Array();
for (var i = 0 ; i < names.length; i++) {
if(names[i].isDirectory()){
jpeg.concat(getJpeg(names[i].getPath()));
continue;
}
var namest = names[i].getName();
if (namest.match(/.*\.jpg|jpeg/)) {
var path = names[i].getPath();
jpeg.push(path);
}
}
return jpeg;
}
谢谢:)
问题来自 concat 文档 ( w3schools.com/jsreF/jsref_concat_array.asp ) 的误读。不得不放
jpeg = jpeg.concat(getJpeg(名称[i].getPath()));
我尝试为 ImageJ 制作一个 javascript 代码,其目标是允许我 select 一个目录,并且 return 我在目录中的所有 jpg 和 jpeg 文件和子目录。 我已经完成了这段代码,它对直接子目录很有效,他在子目录上很好地调用了 getJpeg(我已经用一些 IJ.log 验证了它),但是 jpeg 数组没有与递归调用的结果连接
你有想法吗?
importClass(Packages.ij.IJ);
importClass(Packages.ij.plugin.frame.RoiManager);
importClass(Packages.ij.gui.GenericDialog);
importClass(Packages.ij.io.OpenDialog);
importClass(Packages.java.io.File);
var dirstr = IJ.getDirectory("Choose the stacks folder");
var jpeg = getJpeg(dirstr);
for (var i = 0; i < jpeg.length; i++) {
IJ.log(jpeg[i]);
}
function getJpeg(dirst) {
var dir = new java.io.File(dirst);
var names = dir.listFiles();
var jpeg = new Array();
for (var i = 0 ; i < names.length; i++) {
if(names[i].isDirectory()){
jpeg.concat(getJpeg(names[i].getPath()));
continue;
}
var namest = names[i].getName();
if (namest.match(/.*\.jpg|jpeg/)) {
var path = names[i].getPath();
jpeg.push(path);
}
}
return jpeg;
}
谢谢:)
问题来自 concat 文档 ( w3schools.com/jsreF/jsref_concat_array.asp ) 的误读。不得不放 jpeg = jpeg.concat(getJpeg(名称[i].getPath()));