function cinemaVoucher(inputArray){ /* Любо е голям почитател на киното и редовно ходи на прожекции и участва в томболи, от които често печели ваучери за кино. Вашата задача е да напишете програма, която да изчислява колко покупки от киното може да си купи Любо със спечеленият ваучер. Ако името на покупката съдържа повече от 8 символа, то тя е билет за филм, а нейната цена представлява сумата на ASCII символите от първите ѝ два символа. Ако името на покупката съдържа 8 или по-малко символа, нейната цена е равна на стойността на първия ASCII символ в името. Любо въвежда името на покупките, които желае, докато не въведе "End" или не въведе покупка, чиято стойност е по-голяма от останалата сума на ваучера. Вход Първоначално се чете един ред: • Стойността на ваучера – цяло число в интервала [1…100000] След това до получаване на команда "End" или до изчерпването на ваучера, се чете по един ред: o Покупката, която Любо е избрал – текст Изход Програмата приключва при въвеждане на команда "End" или при покупка чиято стойност е по-голяма от останалите пари от ваучера. На конзолата трябва да се напечатат три реда: • "{брои закупени билети}" • "{брой закупени други покупки}" */ // To convert an entire string into an array of ASCII codes, you can use: // Array.from() combined with map() and charCodeAt(0). // For instance, Array.from('Hello').map(char => char.charCodeAt(0)) produces [72, 101, 108, 108, 111]. let index = 1; let voucherValue = Number(inputArray[0]); let input = inputArray[index]; let totalTickets = 0; let totalGoods = 0; let ticketsPrice = 0 let newTicketPrice = 0; let productPrice = 0; while (input != "End"){ let wordLength = input.length; //определям дължината на масива let article = Array.from(input).map(char=>char.charCodeAt(0));// преобразувам го в масив от ASCII символи if(wordLength > 8){ // проверявам дали дължината е по-голяма от 8 -> това е билет за кино //let article = Array.from(input).map(char => char.charCodeAt(0)); for(let i = 0; i < 2; i++){ // с този цикъл вземам първите два ASCII символа за да намеря цената на билета. Идва от условието на задачата let currentPrice = article[i]; newTicketPrice = newTicketPrice + currentPrice; currentPrice = 0; } if(ticketsPrice <= voucherValue){ //проверявам дали ваучера покрива цената на билета voucherValue = voucherValue - newTicketPrice; totalTickets++; newTicketPrice= 0; }else { break; } }else if(wordLength <= 8){ // проверявам за артикул който има дълина по-малка или рвна на 8 let currentArticle = article[0]// вземам само първия ASCII символ на артикула. productPrice = currentArticle; if(productPrice <= voucherValue){ //проверявам дали ваучера покрива цената на артикула voucherValue = voucherValue - productPrice; productPrice = 0; totalGoods++; }else{ break; // ако нямам достатъчно пари излизам } } index++; if(index > inputArray.length-1){ //проверявам за карай на масива break; } input = inputArray[index]; // вземам следващ елемент от масива } console.log(totalTickets); console.log(totalGoods); } //cinemaVoucher([300, "Captain Marvel", "popcorn", "Pepsi"]) //cinemaVoucher(["1500","Avengers: Endgame","Bohemian Rhapsody","Deadpool 2","End"]) //cinemaVoucher([200, "popcorn", "Pepsi", "End"]) // 192 е сумата на двата артикула с 200 би трябввало да излезем заради End! cinemaVoucher([200, "popcorn", "Pepsi", "Orange", "End"]) // 271 е сумата на трите артикула, 200лв. би трябввало да не ни стигнат поради което да изляза за заради недостатъчно пари във ваучера.