【问题标题】:Recursive function Javascript concat array result - ImageJ递归函数Javascript concat数组结果 - ImageJ
【发布时间】:2017-08-24 10:05:03
【问题描述】:

我尝试为 ImageJ 制作一个 javascript 代码,其目标是允许我选择一个目录,并将目录和子目录中的所有 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;
}

谢谢你:)

【问题讨论】:

  • 对于数组,我认为它将是 push() 而不是 concat()。正确检查方法
  • 谢谢,我会试试的,但我想我会在数组中有一个数组。 w3schools.com/jsreF/jsref_concat_array.asp 编辑;我看到我向您发布文档的错误,concat 是函数的结果,我必须这样做,jpeg = jpeg.concat(getJpeg(names[i].getPath()));我太白痴了
  • @Zeldarck 这是否意味着您解决了您的问题?如果是这样,请将您的解决方案发布为答案并将其标记为已解决。对于您的代码,我建议使用script parameters 而不是GenericDialogOpenDialog。有关 ImageJ 的更多问题,ImageJ forum 是最好的提问地点。
  • 该代码不适合我,我等待我的伙伴回来标记这个答案:) 这个问题更多是关于 javascript 问题而不是 ImageJ,认为这里是更好的地方,但感谢您的建议:) 我看看脚本参数,谢谢!

标签: javascript file recursion imagej


【解决方案1】:

问题来自 concat 文档 (w3schools.com/jsreF/jsref_concat_array.asp) 的误读。不得不放 jpeg = jpeg.concat(getJpeg(names[i].getPath()));

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2020-02-02
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多