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

Does anyone see anything wrong with this code? Thanks -

Hey everyone -

For this video - when I preview my code and type search for an item like "milk" - nothing comes up. Just a blank browser.

Can you see what's wrong with my code? Thanks in advance -

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 of our 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.")
          }
        }
      }

//Fixed Code Presentation

3 Answers

You have a typo on your indexOf(). you have it spelled in all lowercase. It should be in camel case

if (inStock.indexOf(search) > -1) {
  print("Yes, we have " + search + " in the store.")
} else {
  print(search + " is not in stock.")
}

Thanks Chyno -

Rustam Turaev
Rustam Turaev
4,644 Points

What is my error here?

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 of 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 are missing a closing curly brace on your while loop. Also, you are missing a space in your 'Yes we have ' + search + 'in the store'. There should be a space before in

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 of 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');
    }
  }
}