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 Build a Quiz Challenge, Part 2

Can`t I use toLowercase() to variable?

When I use toLowercase() below(variables) code I`m unable to get the result..!

var quiz= [
  ['Your name?','Neil'],
  ['neil`s age',24],
  ['Aim of neil is film maker',true]
];
var answer;
var question;
var response;
var correctanswers = 0;
var html;

function print(message) {
  document.write(message);
}

for(var i=0;i < quiz.length; i+=1){

  question=quiz[i][0];
  answer=quiz[i][1];
  response = parseInt(prompt(question));
  if(response.toLowerCase()=== answer.toLowerCase()){
    correctanswers+=1;
  }
}

html = "you got "+ correctanswers+" question(s) right?";
print(html);

Yes you can use lowerCase() in a variable if its value is a string, I see in your code that you're parsing response into an integer before the if statement, so maybe that's your mistake? try to console.log(typeof response) and see what you get.

1 Answer

Steven Parker
Steven Parker
229,921 Points

Edwin's right .. you can't toLowerCase() a numeric value, which is what you are putting into response. But you need to rethink that anyway, since your answers are a mix of strings and numbers.

The best way to get the program working would probably be to store all your answers as strings, even if the answer looks like a number. For logic answers, maybe use 'yes' and 'no' instead of 'true' and 'false'. Just structure the question to ask for that kind of response. Then eliminate the parseInt completely.