03. Easter Shopping function easterShopping(input) { shopsArr = input.shift().split(" "); let commandsArr = input.slice(1); for (let i = 0; i < commandsArr.length; i++) { let currentAction = commandsArr[i].split(" "); let action = currentAction[0]; if (action.includes("Include")) { let newShop = currentAction[1]; shopsArr.push(newShop); } else if (action.includes("Visit")) { let numberOfShopsToRemove = Number(currentAction[2]); if (shopsArr.length >= numberOfShopsToRemove) { if (currentAction.includes("first")) { shopsArr.splice(0, numberOfShopsToRemove); } else if (currentAction.includes("last")) { for (let j = 0; j < numberOfShopsToRemove; j++) { shopsArr.pop(); } } } } else if (action.includes("Prefer")) { let indexOfFirstShop = Number(currentAction[1]); let indexOfSecondShop = Number(currentAction[2]); if (indexOfFirstShop >= 0 && indexOfFirstShop < shopsArr.length && indexOfSecondShop >= 0 && indexOfSecondShop < shopsArr.length) { let firstShop = shopsArr[indexOfFirstShop]; let secondShop = shopsArr[indexOfSecondShop]; shopsArr.splice(indexOfFirstShop, 1, secondShop); shopsArr.splice(indexOfSecondShop, 1, firstShop); } } else if (action.includes("Place")) { let indexToPlaceAfter = Number(currentAction[2]); let indexToPlaceAt = indexToPlaceAfter + 1; if (indexToPlaceAt >= 0 && indexToPlaceAt < shopsArr.length) { shopsArr.splice(indexToPlaceAt, 0, currentAction[1]); } } } console.log("Shops left:") console.log(shopsArr.join(" ")); }