mark: javascript - Variable Scope - Recursion - Problem

Beitrag lesen

Herzlichen Dank, dedlfix !

Ich habe das jetzt korrigiert. Dabei habe ich beachtet, dass alle Parameter der Funktion übergeben werden. Bei meinem ersten Post war "needle" noch global und ich übergebe nun die variable "matches" an jede weitere Rekursion.

Hmm ... vielleicht wäre es performanter ich würde matches = matches [] weglassen und einfach einfordern, dass drei Parameter übergeben werden, von denen einer eben ein leeres Array ist?

Hier der funktionierende Code:

// get all IIS config file (applicationhost.config) paths recursively
function getIISConfigFilesPath(dir, needle, matches){
    var folderContent = fs.readdirSync(dir);
    matches = matches || [];
    
    
    folderContent.forEach(item => {
        var stats = fs.lstatSync(dir + '/' + item);
        
        if(stats.isDirectory()){
            getIISConfigFilesPath(dir + '/' + item, needle, matches);
            
        }else if(stats.isFile()){
            if(typeof item !== 'undefined' 
               && item === needle){
                
                matches.push(dir + '/' + item);
            }
        }
    });
    
    return matches;
};

 
console.log(getIISConfigFilesPath('c:/DEIN/PFAD', 'ZU_SUCHENDE_DATEI.TXT'));