i have code:
guessed_letter = [] word_to_guess = "hair" letter_holder = [] word_to_guess.split("").each |letter| letter_holder << (guessed_letter.include?(letter)) ? letter : "_" end letter_holder.join('') i have word "hair" being split, nothing in guessed_letter array. ternary operator returns false. shouldn't return underscore each of letter?
restructure code this:
guessed_letter = [] word_to_guess = "hair" letter_holder = [] word_to_guess.split("").each |letter| letter_holder << (guessed_letter.include?(letter) ? letter : "_") end letter_holder.join('') # => "____" what issue original code?
look @ following line:
letter_holder << (guessed_letter.include?(letter)) ? letter : "_" following order of precedence, code means:
( letter_holder << (guessed_letter.include?(letter)) ) ? letter : "_" |____________________________________________________| |____________| | | . . (element getting inserted first) (followed ternary op on array) hence false time guessed_letter.include?(letter) false (since guessed_letter empty array)
Comments
Post a Comment