// Confirms // Сохраните в массив ответы на вопросы, заданные с помощью confirm. Используйте литеральный (декларативный) // синтаксис массивов ([....,....,....]) confirms: { let responseArray = [confirm('Do you like travel?'), confirm('Are you live in Ukraine?'), confirm('Do you eat fish?')]; console.log(responseArray); } // Prompts // Сохраните в массив ответы на вопросы, заданные с помощью prompts. Используйте доступ к массиву по индексу // и присвоение (arr[....] = ....) prompts: { let arr = []; arr[0] = prompt('What are you doing?'); arr[1] = prompt('How old are you?'); arr[2] = prompt('Where are you from?'); console.log(arr); } // Item access // Попросите пользователя ввести (prompt) индекс в массиве. Выведите значение элемента по этому индексу. // Попробуйте так же ввести индекс "length". item_access: { let arr = ['apple', 'orange', 'banana', 'lemon', 'cherry', 'raspberry']; alert(arr[prompt('Enter an index')]); } // Item change // Попросите пользователя ввести (prompt) индекс в массиве, а так же значение для этого индекса. Присвойте // в введенный индекс введенное значение item_change: { let arr = []; arr[prompt('Enter an index')] = prompt('Enter value'); console.log(arr); } // Multiply table // Создайте таблицу умножения 5x5 используя декларативный синтаксис вложенных массивов // const arr = [[....], [....], [....], .....]. Числа во вложенных массивах должны быть равны произведению // индекса внешнего массива на индекс внутреннего массива: arr[2][3] === 6 multiply_table: { const arr = [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8, 12, 16]]; alert(arr[prompt('Enter an outer array index')][prompt('Enter an internal array index')]); // Multiply table slice // Используя slice создайте массив массивов (другую таблицу/матрицу) из таблицы умножения, в которой не // будет нулей let arrWithoutZeros = arr.slice(1); arrWithoutZeros[0] = arrWithoutZeros[0].slice(1); arrWithoutZeros[1] = arrWithoutZeros[1].slice(1); arrWithoutZeros[2] = arrWithoutZeros[2].slice(1); arrWithoutZeros[3] = arrWithoutZeros[3].slice(1); console.log(arrWithoutZeros); // Multiply table rest // Реализуйте задание Multiply table slice, используя оператор rest при деструктуризации. Используйте // вложенную деструктуризацию. После получения четырех обрезанных вложенных массивов - соберите общий // массив без нулей let [[a], [b, ...other1], [c, ...other2], [d, ...other3], [e, ...other4]] = arr; let arrWithoutZerosRest = [other1, other2, other3, other4]; console.log(arrWithoutZerosRest); // Copy // Скопируйте массив созданный в задании Multiply table неглубоко let copy = [...arr]; console.log(copy); // Deep Copy // Скопируйте массив созданный в задании Multiply table включая вложенные массивы (глубокая копия) let deepCopy = JSON.parse(JSON.stringify(arr)); console.log(deepCopy); // Flat // Соберите все элементы всех вложенных массивов из задания Multiply table в один массив. Его длина должна // быть равна 25. Используйте spread-оператор let allElement = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4]]; console.log(allElement); console.log(allElement.length); } // IndexOf Word // Спросите у пользователя строку из нескольких слов. Спросите у него искомое слово. Выведите, каким по // счету является это слово в строке из нескольких слов. Если слово не найдено, выведите сообщение об этом // (а не -1) index_of_word: { const arrayOfStr = prompt('Enter a string').split(' '); const searchWord = prompt('Enter the search word'); alert(arrayOfStr.indexOf(searchWord) == -1 ? 'Word not found' : 'Your word is the ' + (arrayOfStr.indexOf(searchWord) + 1) + ' on the string'); } // Reverse // Добавьте в массив пять введенных пользователем через prompt элементов(используйте push). Создайте другой // массив с этими же элементами в обратном порядке. Для этого извлекайте элементы из первого массива // используя pop, добавляйте их во второй используя push reverse: { let arr = []; let firstElement = prompt('Enter something'); arr.push(firstElement); let secondElement = prompt('Enter something'); arr.push(secondElement); let thirdElement = prompt('Enter something'); arr.push(thirdElement); let fourthElement = prompt('Enter something'); arr.push(fourthElement); let fifthElement = prompt('Enter something'); arr.push(fifthElement); let arrReverse = []; arr.pop(fifthElement); arrReverse.push(fifthElement); arr.pop(fourthElement); arrReverse.push(fourthElement); arr.pop(thirdElement); arrReverse.push(thirdElement); arr.pop(secondElement); arrReverse.push(secondElement); arr.pop(firstElement); arrReverse.push(firstElement); console.log(arrReverse); // Reverse 2 // Переверните второй массив из предыдущего задания еще раз (последовательность будет как в первом массиве), // используя shift и unshift let arrReverse2 = []; arrReverse.shift(fifthElement); arrReverse2.unshift(fifthElement); arrReverse.shift(fourthElement); arrReverse2.unshift(fourthElement); arrReverse.shift(thirdElement); arrReverse2.unshift(thirdElement); arrReverse.shift(secondElement); arrReverse2.unshift(secondElement); arrReverse.shift(firstElement); arrReverse2.unshift(firstElement); console.log(arrReverse2); } // Array Equals // Создайте код, в котором будет две переменных с массивами (arr и arr2), которые равны друг другу // (arr1 === arr2) array_equals: { const arr = [1, 2, 3, 4]; const arr2 = arr; console.log(arr === arr2); } // Destruct // Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию. // Выведите их destruct: { let [letter1, , , , letter5, , , , letter9] = prompt('Enter the string longer then 9 characters').split(''); alert(letter1 + ' ' + letter5 + ' ' + letter9); } // Destruct default // Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию. // Если в строке таких букв не окажется задайте переменным значение по умолчанию ! (восклицательный знак). // Выведите эти переменные destruct_default: { let [, letter2 = '!', , letter4 = '!', letter5 = '!'] = prompt('Enter the string').split(''); alert(letter2 + ' ' + letter4 + ' ' + letter5); } // For Alert // Есть массив ["John", "Paul", "George", "Ringo"]. Выведите каждое имя отдельным alert(), используя цикл // for .... of for_alert: { let names = ['John', 'Paul', 'George', 'Ringo']; for (let name of names) { alert(`Hello, ${name}`); } } // Function Capitalize // Реализуйте задачу String: capitalize как отдельную функцию: function_capitalize: { const capitalize = str => { let result = str.slice(0, 1).toUpperCase() + str.slice(1).toLowerCase(); return result //именно этот код обеспечит возврат результата функции } console.log(capitalize("cANBerRa")); //Canberra // Map Capitalize // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и capitalize создайте массив в // котором каждое слово будет с большой буквы. Соберите массив в строку обратно let arrOfStr = prompt('Enter the string').split(' '); let everyWordIsCapitalized = arrOfStr.map(x => capitalize(x)).join(' '); alert(everyWordIsCapitalized); } // Filter Lexics // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент // массива не состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое // слово, функция, переданная в filter должна возвращать false. Соберите массив в строку обратно. filter_lexics: { let arrOfStr = prompt('Enter the string').split(' '); let blockList = ['chocolate', 'coffee', 'cigarettes']; let filteredStr = arrOfStr.filter(item => !blockList.includes(item.toLowerCase())).join(' '); alert(filteredStr); } // Beep Lexics // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и тернарный оператор верните из // функции слово без изменений, если оно не состоит в каком-то другом массиве запрещенных слов. Если же // слово состоит в этом списке, функция должна вернуть слово BEEP. Соберите массив обратно в строку через // пробел. Таким образом вы сможете реализовать замену нескольких запрещенных слов на BEEP. beep_lexics: { let arrOfStr = prompt('Enter the string').split(' '); let blockList = ['chocolate', 'coffee', 'cigarettes']; let filteredStr = arrOfStr.map(item => blockList.includes(item.toLowerCase()) ? 'BEEP' : item).join(' '); alert(filteredStr); } // For Brackets Hell Check // Пусть пользователь вводит строку с любыми парными скобками в ней, например [ [ ] () {{{[]()}}}]. Найдите // место возможной ошибки (непарности) в этой строке. Для этого, каждую открывающую скобку добавляйте в стек. // При нахождении закрывающей она должна соответствовать вершине стека. Если она не соответстует, выведите // сообщение об ошибке и позицию в строке. Если соответствует - уберите скобку из стека. Если строка ошибок // не содержит, порадуйте пользователя. for_brackets_hell_check: { const line = prompt(); const bracketsStack = []; let i = 0; let result = true; for (let character of line) { //не обращайте внимания на символы, кроме трех видов скобок if (character == '(' || character == '[' || character == '{') { bracketsStack.push(character); } const lastOpenedBracket = bracketsStack[bracketsStack.length - 1]; if (character == ')' && lastOpenedBracket != '(' || character == ']' && lastOpenedBracket != '[' || character == '}' && lastOpenedBracket != '{') { result = false; break; //оператор break прерывает цикл преждевременно } if (character == ')' || character == ']' || character == '}') { bracketsStack.pop(character); } i++; } alert(result ? 'VALID' : 'ERROR'); }