Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Ruby Ruby Booleans Build a Simple Todo List Program Finding Array Items

Michael Criste
Michael Criste
5,045 Points

I've referred to my notes on Workspaces and have attempted multiple ways to get this code to pass. Please help.

I believe I understand the concepts at play here, but I can't get this code to pass the test. Not sure why. I'm wondering if it might just be due to a typo that I'm not finding.

todo_list.rb
class TodoList
  attr_reader :name, :todo_items

  def initialize(name)
    @name = name
    @todo_items = []
  end

  def add_item(name)
    todo_items.push(TodoItem.new(name))
  end

  def find_index(name)
    index = 0
    found = false
    todo_items.each do |todo_item|
      if todo_items.name == name
        found = true
      end
        if found
          break
        else
          index += 1
        end
      if found
        return index
      else
        nil
      end
    end
  end

end

3 Answers

Hi Michael,

Make it short and sweet.

def find_index(name)
  index = 0
  found = false
  todo_items.each do |todo_items|
    if todo_items.name == name
      found = true
      break
    else
      index += 1
    end
  end
  if found 
    return index
  else 
    return nil
  end
end

Hope that helps.

There is a simple typo in the first if statement after you start your each loop, but something about your loop is confusing me.

Michael Criste
Michael Criste
5,045 Points

I worked! Thank you so much.

San Francisco
San Francisco
28,373 Points

Mark the answers that helped you as "best answer" so that the person that gives you the answer gets credit, as well as making it easier for other students to know which solution was best