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 trialAnthony McCormick
6,774 PointsCode review and toLowerCase() on Arrays?
I have been able to complete this test (it was actually really hard and took a while to get going!). It'd be great if someone could review my code. Please see it below:-
function print(message) {
document.write(message);
}
var qa = [
['Who directed Full Metal Jacket, Eyes Wide Shut & 2001: A Space Odyssey?', 'Kubrick'],
['Who directed Rear Window, The 39 Steps and Marnie?', 'Hitchcock'],
['Who directed Through A Glass Darkly, Seventh Seal and Persona?', 'Bergman']
];
var correctQuestions = [];
var incorrectQuestions = [];
function askQuestion() {
for (var i = 0; i < qa.length; i++) {
answer = prompt(qa[i][0]);
// answer = answer.toLowerCase();
if (answer === qa[i][1]) {
alert("Correct!");
correctQuestions.push(qa[i][0]);
} else {
alert("Incorrect!");
incorrectQuestions.push(qa[i][0]);
}
}
}
askQuestion()
print('<h1> Your score is ' + correctQuestions.length + '.</h1><br><h2>You got these questions correct:</h2>' + correctQuestions.join('<br>'));
print('<h2>You got these questions correct incorrect:</h2>' + incorrectQuestions.join('<br>'));
You may of noticed that my answers are names, thus are capitalised which causes a problem if someone types in the answer with a lower case. I thought .toLowerCase() would resolve this but it doesn't, it simply causes my answers to become incorrect regardless. I have tried it two different ways, see both below:-
answer = prompt(qa[i][0]).toLowerCase;
answer = prompt(qa[i][0]);
answer = answer.toLowerCase();
Any ideas how best to resolve this issue? Thanks in advanced!
2 Answers
akak
29,446 PointsHi,
Right now every answer will be wrong because if someone writes Kubrick by toLowerCase
you make his answer kubrick
. So it's not expected Kubrick
.
Either write answers in your array in all lowercase or make
if (answer.toLowerCase() === qa[i][1].toLowerCase())
then kubrick === kubrick
Anthony McCormick
6,774 PointsThanks for that Akak! Looks like applying the .toLowerCase() in the if statement allows me to enter both Kubrick and kubrick.