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 Tracking Multiple Items with Arrays Useful Array Methods

As with several Workspaces in this series I CANNOT get the preview to work properly. (Tried cache clearing, restarting.)

No matter how many times I review the code I cannot get it to run in preview properly.

HTML:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Search the Store</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <h1>Search the Store</h1> <script src="js/search.js"></script> </body> </html>

JAVASCRIPT:

var inStock = [ 'apples', 'eggs', 'milk', 'cookies', 'cheese', 'bread', 'lettuce', 'carrot', 'broccoli', 'pizza', 'potato', 'crackers', 'onion', 'tofu', 'frozen dinner', 'cucumber']; var search;

function print(message) { document.write( '<p>' + message + '</p>'); }

while (true) { search = prompt("Search for a product in our store. Type 'list' to show all the produce and 'quit' to exit"); search = search.toLowerCase(); if ( search === 'quit' ) {
break; } else if ( search === 'list' ) { print( inStock.join(', ') ); } else { if ( inStock.indexOf( search ) > -1 ) { print( 'Yes, we have ' + search + ' in the store.'); } else { print( search + ' is not in stock.'); }
}

3 Answers

Tou Lee
Tou Lee
6,608 Points

Seth Kroger is correct. You're missing a closing } for the while loop. Look at my example below.

var inStock = [ 'apples', 'eggs', 'milk', 'cookies', 'cheese', 'bread', 'lettuce', 'carrot', 'broccoli', 'pizza', 'potato', 'crackers', 'onion', 'tofu', 'frozen dinner', 'cucumber']; var search;

function print(message) {
  document.write( '<p>' + message + '</p>'); 
}

while (true) {
  search = prompt("Search for a product in our store. Type 'list' to show all the produce and 'quit' to exit"); search = search.toLowerCase(); 
  if ( search === 'quit' )
  {
    break; 
  }
  else if ( search === 'list' ) 
  { 
    print( inStock.join(', ') ); 
  } 
  else
  {
    if ( inStock.indexOf( search ) > -1 ) 
    {
      print( 'Yes, we have ' + search + ' in the store.'); 
    } 
    else 
    { 
      print( search + ' is not in stock.'); 
    }
  }
} // you're missing this closing bracket

Not sure how that happened but I will say that adding space in your code helps to read it better. Therefore, possibly making it easier to catch such syntax errors.

Jay Padzensky
Jay Padzensky
4,731 Points

Sorry to hear about the troubles!

If this is a site issue (and not code), please feel free to email Support with what's occurring. Details about what is happening, what's actually happening, your Workspace text editor URL, and screenshots are very helpful. We'll be happy to take a look for you. help@teamtreehouse.com

Seth Kroger
Seth Kroger
56,413 Points

Looks like you're missing the closing brace on the while loop.