3 JS solutions. Uncommented solution needs more work but is getting closer to being a proper todo list.