Difference between two codes: I get false for one and true for another

40 Views Asked by At

I got these two codes from two websites defining the longest word in a string:

Code 1.

def longest_word(sentence)
  words = sentence.split(" ")
  longest_word = nil
  word_idx = 0
  while word_idx < words.length
    current_word = words[word_idx]
    if longest_word == nil
      longest_word = current_word
    elsif longest_word.length < current_word.length
      longest_word = current_word
    end
    word_idx += 1
  end
  longest_word
end

Code 2.

def LongestWord(sen)
  arr = sen.split.map do |w|
    /[a-zA-Z0-9\s]+/.match(w)
  end
  longest = arr.max_by do |w|
    w.to_s.length
  end
  longest
end

But one code gives me true, and one gives me false. Can someone tell me why?

1

There are 1 best solutions below

0
everyman On

The difference is:

so

longest_word(sentence).eql?(LongestWord(sentence).to_s) == true