From: Justin Collins Date: 2008-02-22T07:58:59+09:00 Subject: Re: More efficient comparing Kyle Hunter wrote: > Hello, > > I've got an array that holds urls. Example Element: > http://bla.random.com/bla.jpg. > > I also have images in a directory. I'd like my script to compare the > bla.jpg from the URL with all files in a directory to make sure it's not > a duplicate of something that's already there - if it is - delete it > from the array. My current way of doing it uses quite a bit of > resources, was wondering if someone could show me a more efficient > example if possible. > > Current Code: > Dir["#{$baseDir}/#{board}/#{$dateString}/**"].each do |file| > $imgArray.delete_if{ > |i| i =~ /#{file.split('/').pop}/ > } > Try: require 'set' files = Dir["#{$baseDir}/#{board}/#{$dateString}/**"].map { |file| File.basename(file) }.to_set $imgArray.delete_if {|i| files.include? i.split("/")[-1] } -Justin