Witam. Napisałem prostą aplikację, która losuje liczbę, a użytkownik musi ją odgadnąć. Dodałem również funkcję, która wyświetla ostatnie wyniki. Chciałem, aby te wyniki były przechowywane w localStorage. Problem pojawia się, gdy chcę je sparsować poprzez JSON.parse() do Array. Kod znajduje się poniżej.
$(() => {
const prompt = $('.prompt');
const answer = $('.answer');
const prev = $('.prev');
let isTrue = false;
let prevAnswers = [];
if (localStorage.getItem('prevAnswers')) {
let prev = localStorage.getItem('prevAnswers');
prevAnswers = JSON.parse(prev, null);
}
let number = parseInt(Math.random()*100);
setInterval(() => {
const value = answer.val();
if(isNaN(value)) {
prompt.text(`${value} isn't a number!`);
} else {
if(value != '') {
if(value < number) {
prompt.text(`${value} is smaller than number.`);
} else if(value > number) {
prompt.text(`${value} is greater than number.`);
} else if(value == number){
if (isTrue == false) {
isTrue = true;
prompt.text(`${value} is equal to number! Bravo!`);
setTimeout(() => {
prompt.text('In 5 seconds I will draw the next number and clear the answer input. In that time I will show the last number below. Have a nice game!');
}, 2000);
setTimeout(() => {
prevAnswers.push(value);
answer.val('');
console.log(prevAnswers);
number = parseInt(Math.random() * 100);
prev.html('<h2>Previous answers:</h2>');
for (let i = 0; i < prevAnswers.length; i++) {
if(i == prevAnswers.length-1) {
prev.html(`${prev.html()}${prevAnswers[i]}.`);
} else {
prev.html(`${prev.html()}${prevAnswers[i]}, `);
}
}
isTrue = false;
}, 5000);
}
}
} else {
prompt.text(`You didn't type a answer. Please type number in input!`);
}
}
}, 100);
});
Problemem jest fakt, że konsola wywala mi błąd związany z 2 argumentem funkcji JSON.parse(), który nie jest mi potrzebny.