1. Old books - JS
Не получавам желания отговор. Цикъла ми отчита, че съм минала само през една книга докато стигна до любимата книга,а всъщност минавам през две, но не ми ги отпечатва.
Не получавам желания отговор. Цикъла ми отчита, че съм минала само през една книга докато стигна до любимата книга,а всъщност минавам през две, но не ми ги отпечатва.
https://pastebin.com/hnyT2HsW - Твоето решение поправено.
Проблема беше на 18-ти ред където ако минеш if проверката (дефакто не е намерила книгата) четеш пак книга която не се проверява защото на 11-ти ред четеш следващата.
Така това което става при вход :
The Spot
4
Hunger Games
Harry Potter
Torronto
Spotify
Взимаш първо Hunger Games == The Spot - Не, но преди да се е върнало към while loop-a взимаш :
counter++;
nextBook = input.shift();
само , че никъде не го проверяш и губиш цяла книга защото отива на 11-ти ред и вместо да провери Harry Potter == The Spot то проверява Torronto == The Spot --- let nextBook = input.shift();
Надявам се да съм си бил полезен.
Преди while цикъла не трябва ли next book да се въведе като променлива ? NextBook се слага веднага след while цикъла, за да може да преминава на всяка следваща, нали ? А когато е на 18 ред прехвърлянето на книгите не стига до този ред ? Ако правилно съм те разбрала.
Благодаря за изчерпателния отговор :)
nextBook може да е във цикъла или извън него, аз просто съм го изнесъл извън него.
let nextBook = input.shift();
или
let nextBook;
while (counter < numBook) {
nextBook = input.shift();
Няма значение и двете правят едно и също
-----------------
На 18-ти ред има прехвърляне на книга в твоят код ( nextBook = input.shift(); )
Само че след него няма проверка - >
if (nextBook == favouriteBook) {
isBookFound = true;
console.log(`You checked ${counter} books and found it.`)
break;
}
и това което става е че се връща на 11-ти ред ---- > let nextBook = input.shift();
и реално пропъска цяла книга.
Едниственото нещо което трябва да промениш в твоят код е да изтриеш 18-ти ред
Разбрах ! Много благодаря : )