123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- //Confirms
- //Сохраните в массив ответы на вопросы, заданные с помощью confirm. Используйте литеральный (декларативный) синтаксис массивов ([....,....,....])
- {
- const arr = [confirm('яблоко фрукт?'), confirm('груша фрукт?'), confirm('морковь фрукт?')]
- }
- //Prompts
- //Сохраните в массив ответы на вопросы, заданные с помощью prompts. Используйте доступ к массиву по индексу и присвоение (arr[....] = ....)
- {
- const arr = [];
- arr[0] = confirm('яблоко фрукт?');
- arr[1] = confirm('груша фрукт?');
- arr[2] = confirm('морковь фрукт?');
- }
- //Item access
- //Попросите пользователя ввести (prompt) индекс в массиве. Выведите значение элемента по этому индексу. Попробуйте так же ввести индекс "length".
- {
- alert ( arr[ prompt() ] )
- }
- //Item change
- //Попросите пользователя ввести (prompt) индекс в массиве, а так же значение для этого индекса. Присвойте в введенный индекс введенное значение
- {
- const arr = [];
- const arrIndex = prompt('введите индекс в массиве');
- const arrValue = prompt('введите индекс в массиве');
- arr[arrIndex] = arrValue;
- }
- //Multiply table
- //Создайте таблицу умножения 5x5 используя декларативный синтаксис вложенных массивов const arr = [[....], [....], [....], .....]. Числа во вложенных массивах должны быть равны произведению индекса внешнего массива на индекс внутреннего массива: arr[2][3] === 6
- { const arr = [[],[],[],[],[],[]]
- arr[0][0] = 0;
- arr[0][1] = 0;
- arr[0][2] = 0;
- arr[0][3] = 0;
- arr[0][4] = 0;
- arr[0][5] = 0;
- arr[1][0] = 0;
- arr[1][1] = 1;
- arr[1][2] = 2;
- arr[1][3] = 3;
- arr[1][4] = 4;
- arr[1][5] = 5;
- arr[2][0] = 0;
- arr[2][1] = 2;
- arr[2][2] = 4;
- arr[2][3] = 6;
- arr[2][4] = 8;
- arr[2][5] = 10;
-
- arr[3][0] = 0;
- arr[3][1] = 3;
- arr[3][2] = 6;
- arr[3][3] = 9;
- arr[3][4] = 12;
- arr[3][5] = 15;
- arr[4][0] = 0;
- arr[4][1] = 4;
- arr[4][2] = 8;
- arr[4][3] = 12;
- arr[4][4] = 16;
- arr[4][5] = 20;
- arr[5][0] = 0;
- arr[5][1] = 5;
- arr[5][2] = 10;
- arr[5][3] = 15;
- arr[5][4] = 20;
- arr[5][5] = 25;
- }
- //или так. из задания не понятно что конкретно должно быть.
- {
- const arr = [
- [0,0,0,0,0,0],
- [0,1,2,3,4,5],
- [0,2,4,6,8,10],
- [0,3,6,9,12,15],
- [0,4,8,12,16,20],
- [0,5,10,15,20,25]
- ];
- }
- //Multiply table slice
- //Используя slice создайте массив массивов (другую таблицу/матрицу) из таблицы умножения, в которой не будет нулей
- const arrCopy = [arr[1].slice(1), arr[2].slice(1), arr[3].slice(1), arr[4].slice(1), arr[5].slice(1)]
- //IndexOf Word
- //Спросите у пользователя строку из нескольких слов. Спросите у него искомое слово. Выведите, каким по счету является это слово в строке из нескольких слов. Если слово не найдено, выведите сообщение об этом (а не -1)
- {
- const str = prompt ('напишите небольшое предложение.');
- const strArr = str.split(' ');
- const strWordSearch = prompt ('напишите слово из предложения которое вы ввели');
- const strWordIndex = strArr.indexOf(strWordSearch)
- if (strWordIndex < 0){
- alert(`слово "${strWordSearch}" не найдено`)
- }else{
- alert (`слово "${strWordSearch}" будет № ${strWordIndex + 1} по порядку в строке "${str}"`)
- }
- }
- // Reverse
- // Добавьте в массив пять введенных пользователем через prompt элементов(используйте push). Создайте другой массив с этими же элементами в обратном порядке. Для этого извлекайте элементы из первого массива используя pop, добавляйте их во второй используя push
- {
- const arr = [];
- arr.push( prompt("введите значение массива №1") );
- arr.push( prompt("введите значение массива №2") );
- arr.push( prompt("введите значение массива №3") );
- arr.push( prompt("введите значение массива №4") );
- arr.push( prompt("введите значение массива №5") );
- const arrCopy = [];
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- }
- //Reverse 2
- //Переверните второй массив из предыдущего задания еще раз (последовательность будет как в первом массиве), используя shift и unshift
- {
- const arr = [];
- arr.push( prompt("введите значение массива №1") );
- arr.push( prompt("введите значение массива №2") );
- arr.push( prompt("введите значение массива №3") );
- arr.push( prompt("введите значение массива №4") );
- arr.push( prompt("введите значение массива №5") );
- const arrCopy = [];
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- arrCopy.push(arr.pop());
- const arrCopyRevers = [];
- arrCopyRevers.unshift(arrCopy.shift());
- arrCopyRevers.unshift(arrCopy.shift());
- arrCopyRevers.unshift(arrCopy.shift());
- arrCopyRevers.unshift(arrCopy.shift());
- arrCopyRevers.unshift(arrCopy.shift());
- }
- //Copy
- //Скопируйте массив созданный в задании Multiply table неглубоко
- {
- const arr = [
- [0,0,0,0,0,0],
- [0,1,2,3,4,5],
- [0,2,4,6,8,10],
- [0,3,6,9,12,15],
- [0,4,8,12,16,20],
- [0,5,10,15,20,25]
-
- ];
- const arr2 = [arr.slice()];
- }
- //Deep Copy
- //Скопируйте массив созданный в задании Multiply table включая вложенные массивы (глубокая копия)
- {
- const arr = [
- [0,0,0,0,0,0],
- [0,1,2,3,4,5],
- [0,2,4,6,8,10],
- [0,3,6,9,12,15],
- [0,4,8,12,16,20],
- [0,5,10,15,20,25]
-
- ];
- //условно руками
- const arrCopy = [
-
- arr[0].slice(),
- arr[1].slice(),
- arr[2].slice(),
- arr[3].slice(),
- arr[4].slice(),
- arr[5].slice(),
-
- ]
- // или циклом for of
- for (let a of arr) {
- arrCopy.push(a.slice());
- }
-
- }
- //Array Equals
- //Создайте код, в котором будет две переменных с массивами (arr и arr2), которые равны друг другу (arr1 === arr2)
- {
- const arr = [];
- const arr1 = arr;
- alert( arr===arr1)
- }
- //Flat
- //Соберите все элементы всех вложенных массивов из задания Multiply table в один массив. Его длина должна быть равна 25. Используйте spread-оператор
- {
- const arr = [
- [1,2,3,4,5],
- [2,4,6,8,10],
- [3,6,9,12,15],
- [4,8,12,16,20],
- [5,10,15,20,25]
- ];
- const arr1 = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4], ]
- }
- // Destruct
- // Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию. Выведите их
- {
- let [letter1,,,,letter5,,,,letter9] = prompt('введите строку, я извлеку 1, 5 , девятую буквы').split('');
- alert(letter1 + letter5 + letter9);
- }
- //Destruct default
- //Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию. Если в строке таких букв не окажется задайте переменным значение по умолчанию ! (восклицательный знак). Выведите эти переменные
- {
- let [,letter2 = '!',,letter4 = '!',letter5 = '!'] = prompt('введите строку, я извлеку 1, 5 , девятую буквы').split('');
- alert(letter2 + letter4 + letter5);
- }
- //Multiply table rest
- //Реализуйте задание Multiply table slice, используя оператор rest при деструктуризации. Используйте вложенную деструктуризацию. После получения четырех обрезанных вложенных массивов - соберите общий массив без нулей
- {
- const arr = [
- [0,0,0,0,0,0],
- [0,1,2,3,4,5],
- [0,2,4,6,8,10],
- [0,3,6,9,12,15],
- [0,4,8,12,16,20],
- [0,5,10,15,20,25]
-
- ];
- let [
- ,
- [, ...rest1],
- [, ...rest2],
- [, ... rest3],
- [, ...rest4],
- [, ...rest5]
- ] = arr;
- arrCopy = [rest1, rest2, rest3, rest4, rest5];
- }
- //For Alert
- //Есть массив ["John", "Paul", "George", "Ringo"]. Выведите каждое имя отдельным alert(), используя цикл for .... of
- {
- for (let name of ["John", "Paul", "George", "Ringo"]) {
- alert(name);
- }
- }
- //For Select Option
- /* const currencies = ["USD", "EUR", "GBP", "UAH"]
- let str = "<select>"
- for (let currency of currencies){
- // YOUR MAGIC HERE
- }
- str+= "</select>"
- document.write(str) //document.write отобразит ваш HTML на странице */
- //Используя заготовку выше, создайте выпадающий список с валютами. Элементы выпадающего списка создаются с помощью тэга <option>
- {
- const currencies = ["USD", "EUR", "GBP", "UAH"]
- let str = "<select>"
- for (let currency of currencies){
- str += "<option>"+ currency + "</option>"
- }
- str+= "</select>"
- document.write(str)
- }
- //For Table Horizontal
- /* const names = ["John", "Paul", "George", "Ringo"]
- let str = "<table>"
- for (let currency of currencies){
- // YOUR MAGIC HERE
- }
- str+= "</table>"
- document.write(str) //document.write отобразит ваш HTML на странице
- Аналогично, добейтесь вывода имен в ячейки таблицы по горизонтали (одна строка с четырьмя ячейками)*/
- {
- const names = ["John", "Paul", "George", "Ringo"]
- let str = "<table>"
- for (let name of names){
- str += "<td>" + name + "</td>"
- }
- str+= "</table>"
- document.write(str)
- }
- //For Table Vertical
- /*
- const names = ["John", "Paul", "George", "Ringo"]
- let str = "<table>"
- for (let name of names){
- // YOUR MAGIC HERE
- }
- str+= "</table>"
- document.write(str) //document.write отобразит ваш HTML на странице
- Аналогично, добейтесь вывода имен в ячейки таблицы по вертикали(одна колонка с четырьмя строками, в каждой строке - одна ячейка)
- */
- {
- const names = ["John", "Paul", "George", "Ringo"]
- let str = "<table>"
- for (let name of names){
- str += "<tr><td>" + name + "</td></tr>"
- }
- str+= "</table>"
- document.write(str)
- }
- //For Table Letters
- //Используя заготовку выше, создайте таблицу 3x4. В каждой строке по три ячейки с буквами, четыре строки, так как 4 валюты в массиве.
- const currencies = ["USD", "EUR", "GBP", "UAH"]
- let str = "<table>"
- for (let currency of currencies){ //цикл создает строки
- //одна итерация цикла создает ОДНУ СТРОКУ
- str += "<tr>"
- console.log(currency)
- for (let letter of currency){ //цикл создает ЯЧЕЙКИ в ОДНОЙ СТРОКЕ
- //одна итерация цикла создает ОДНУ ЯЧЕЙКУ
- str += "<td>" + letter + "</td>"
- console.log(letter)
- }
- str += "</tr>"
- }
- str+= "</table>"
- document.write(str) //document.write отобразит ваш HTML на странице
- //For Multiply Table
- //Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write
- //Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой
- {
- const arr = [
- [0,0,0,0,0,0],
- [0,1,2,3,4,5],
- [0,2,4,6,8,10],
- [0,3,6,9,12,15],
- [0,4,8,12,16,20],
- [0,5,10,15,20,25]
-
- ];
-
- let str = "<table>"
- let i = 1
-
- for (let tr of arr){
-
- if (i++ % 2 === 0){
- str += '<tr style="background-color: grey;">'
- }else{
- str += "<tr>"
- }
-
- for (let td of tr){
- str += "<td>" + td + "</td>"
- }
- str += "</tr>"
- }
-
- str += "</table>"
- document.write(str)
- }
- //Function Capitalize
- //Реализуйте задачу String: capitalize как отдельную функцию:
- {
- let str = "cANBerRa";
- let f = (x) => x[0].toUpperCase() + x.slice(1).toLowerCase();
- let result = f(str);
- console.log(result); //Canberra
- }
- //Map Capitalize
- //Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и capitalize создайте массив в котором каждое слово будет с большой буквы. Соберите массив в строку обратно
- {
- let f = (x) => x[0].toUpperCase() + x.slice(1).toLowerCase();
- let str = prompt('введите строку');
- let arr = str.split(' ');
- let arrCapitalize = arr.map(f);
- alert (arrCapitalize.join(' '))
- }
- //Filter Lexics
- //Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент массива не состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое слово, функция, переданная в filter должна возвращать false. Соберите массив в строку обратно.
- {
- let str = prompt('введите строку. Ни слова о политике, я вырежу все фамилии президентов');
- let arr = str.split(" ");
- const f = (word) => {
- const arrBadWords = ["Кравчук","Кучма","Ющенко","Янукович","Порошенко","Зеленский"];
- for (let BadWord of arrBadWords){
- if (word.toLowerCase() === BadWord.toLowerCase()){ return false}
- }
- return true;
- }
- let arrNew = arr.filter(f);
- alert(arrNew.join(' '));
- }
- // Beep Lexics
- //Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и тернарный оператор верните из функции слово без изменений, если оно не состоит в каком-то другом массиве запрещенных слов. Если же слово состоит в этом списке, функция должна вернуть слово BEEP. Соберите массив обратно в строку через пробел. Таким образом вы сможете реализовать замену нескольких запрещенных слов на BEEP.
- {
- let str = prompt('введите строку. Ни слова о политике, я вырежу все фамилии президентов');
- let arr = str.split(" ");
- const f = (word) => {
- const arrBadWords = ["Кравчук","Кучма","Ющенко","Янукович","Порошенко","Зеленский"];
- for (let BadWord of arrBadWords){
- if (word.toLowerCase() === BadWord.toLowerCase()){ return "BEEP"}
- }
- return word;
- }
- let arrNew = arr.map(f);
- alert(arrNew.join(' '));
- }
- // Reduce HTML
- { const currencies = ["USD", "EUR", "GBP", "UAH"]
- let str = "<select>"
- str += currencies.reduce( (a,b) => a + "<option>" + b, "")
- str += "</select>"
- document.write(str)
- }
- //For Brackets Hell Check
- //Пусть пользователь вводит строку с любыми парными скобками в ней, например [ [ ] () {{{[]()}}}]. Найдите место возможной ошибки (непарности) в этой строке. Для этого, каждую открывающую скобку добавляйте в стек. При нахождении закрывающей она должна соответствовать вершине стека. Если она не соответстует, выведите сообщение об ошибке и позицию в строке. Если соответствует - уберите скобку из стека. Если строка ошибок не содержит, порадуйте пользователя.
- {
- const line = prompt()
- const bracketsStack = []
- let i = 0
- for (let character of line){
- if (character === "[" || character === "(" || character === "{" ){
- bracketsStack.push(character);
- }else if(character === ']' && bracketsStack.at(-1) === '[' ||
- character === '}' && bracketsStack.at(-1) === '{' ||
- character === ')' && bracketsStack.at(-1) === '('
- ){
- bracketsStack.pop()
- }
- else if (character !== " ") {
- alert ('Вероятно есть проблема, нет парной скобки на позиции: ' + i)
- break;
- }
-
-
- i++
- }
-
- if (i === line.length) alert('all ok!')
-
- }
|