Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Loops, Arrays and Objects Simplify Repetitive Tasks with Loops The Refactor Challenge

Dmitriy Moroz
Dmitriy Moroz
3,775 Points

Here is my solution to Refactor Challenge. The result is slightly different(all colors form a stack).. I wonder why?

var html = '';
var red;
var green;
var blue;
var rgbColor;

function randomColor() {
    red = Math.floor(Math.random() * 256 );
    green = Math.floor(Math.random() * 256 );
    blue = Math.floor(Math.random() * 256 );
    rgbColor = 'rgb(' + red + ',' + green + ',' + blue + ')';
    return rgbColor;
}

for( var i = 0; i <10; i++) {
  html += '<div style = "background-color:'+randomColor()+'"</div>';
}
document.write(html);

2 Answers

Aaron Pedersen
Aaron Pedersen
5,856 Points

If you are wondering why it stacks it is because you did not close the opening div element when you assign a value to your html variable in the 'for' loop.

Aaron, I did a similar thing while I was working on refactoring (leaving out the > for the opening div tag. ) My question would by WHY does that happen? I would think the code would just "break"