I'm using node-red-contrib-fs-ops to get a list of the files in a folder. The names of the files are returned in an array. However it is also returning the hidden files (ones starting with a period) and I don't want them.
My brain is fried from watching grand kids and I'm trying to figure out how to get rid of the files with a period. I suppose I could code a function with a loop to look at the entry and if it starts with a period, pop it off the array,
Just wondering if someone has a better/cleverer/easier idea.
Thanks
             
            
              
              
              
            
                
            
           
          
            
            
              Using filter on the array in a function node should get you what you need...
var input = ["one", ".two", "three"];
var output = input.filter(item => item[0] == '.' ? null : item);
console.log(output);
             
            
              
              
              2 Likes
            
            
           
          
            
            
              
Nice! and I now have learned something new today!
             
            
              
              
              
            
            
           
          
            
            
              
Hi Paul, could you please confirm the name of the contrib node ?  I wanted to have a look at it but failed to find by the name node-red-contrib-fso in the library. Thank you !
             
            
              
              
              
            
            
           
          
            
            
              See I told you my brain was fried. the node is node-red-contrib-fs-ops 
p.s. I fixed it in the original post
Just for info, I'm building a little music player for my daughter to put in her waiting room. The walls of her new office are not very sound proof and she is a therapist.
I have an old 3" Cambridge Sounsworks speaker, a Pi Zero W and a HiFiBerry DAC hat that sits on the Pi. I created a folder on the Pi called Sounds. Because I use a mac and copy files to the Pi from the finder, a file called .AppleDouble gets created and I wanted to get rid of it.
             
            
              
              
              1 Like
            
            
           
          
            
            
              Of course, you can also use one of these lovely JSONata expressions in a change node:
[payload[$not($match(/^[.]/))]]
[payload[$match(/^[^.]/)]]
[payload[$substringBefore(".")]] (not exactly sure why that works?!?)
[payload[$substring(0,1) != "."]]
[payload~>$filter(/^\w/)]
and probably many more...
             
            
              
              
              
            
            
           
          
            
            
              @shrickus Steve...Nice, they almost all work great! I like [payload[$substring(0,1) != "."]] - it makes sence to me.
[payload~>$filter(/^\w/)] has a problem, it gets rid of every other file so if there are 18 filenames and the first has a period, you get 1, 3, 5, 7, 9, 11, 13, 15 and 17 returned 
             
            
              
              
              
            
            
           
          
            
            
              Ah, yes, i think the filter function takes 2 args... sorry about that -- I guess my dataset was too small to notice that behavior ;*)
Yep, I'd use the one that makes the most sense to you, especially when you go back to look at it next month... and regex is not very "human-readable".
             
            
              
              
              
            
            
           
          
            
            
              
This one is good. Deserves its own topic. I have a similar use case that is a puzzle to me. I will open the topic, make a remark and ask for feedback and will try to find the other case.
             
            
              
              
              
            
            
           
          
            
            
              
Regex makes my brain hurt. I was using a function node to get rid of the dotted files and count them, now I'm just using a change node with two jssonata expressions - works great.

             
            
              
              
              2 Likes