123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- // Материал
- // В этих и предыдущих ДЗ прогоните кусочки кода из материала лекции через отладчик и внимательно посмотрите что происходит
- {
- // сделано
- }
- // Confirms
- // Сохраните в массив ответы на вопросы, заданные с помощью confirm.Используйте литеральный(декларативный) синтаксис массивов([...., ...., ....])
- {
- const arr = [confirm('ты учишься в A-level?'), confirm('Сейчас зима на улице?'), confirm('Ты младше 2 лет?'), confirm('У тебя часто выключают свет?')]
- console.log(arr)
- }
- // Prompts
- // Сохраните в массив ответы на вопросы, заданные с помощью prompts.Используйте доступ к массиву по индексу и присвоение(arr[....] = ....)
- {
- const arr = []
- arr[arr.length] = prompt('ты учишься в A-level?')
- arr[arr.length] = prompt('Сейчас зима на улице?')
- arr[arr.length] = prompt('Ты младше 2 лет?')
- arr[arr.length] = prompt('У тебя часто выключают свет?')
- console.log(arr)
- }
- // Item access
- // Попросите пользователя ввести(prompt) индекс в массиве.Выведите значение элемента по этому индексу.Попробуйте так же ввести индекс "length".
- {
- const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'A', 'B', 'C', 'D', 'E', 'F']
- alert(arr[prompt('Введите в поле ниже цифру от 0 до 15, или "length"', 'length')])
- }
- // Item change
- // Попросите пользователя ввести(prompt) индекс в массиве, а так же значение для этого индекса.Присвойте в введенный индекс введенное значение
- {
- const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'A', 'B', 'C', 'D', 'E', 'F']
- arr[prompt('Введите в поле ниже цифру от 0 до 15')] = prompt('Введите любое значение для этого индекса')
- console.log(arr)
- }
- // Multiply table
- // Создайте таблицу умножения 5x5 используя декларативный синтаксис вложенных массивов const arr = [[....], [....], [....], .....].Числа во вложенных массивах должны быть равны произведению индекса внешнего массива на индекс внутреннего массива: arr[2][3] === 6
- {
- 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]]
- console.log(arr[4][2])
- }
- // Multiply table slice
- // Используя slice создайте массив массивов(другую таблицу / матрицу) из таблицы умножения, в которой не будет нулей
- {
- 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]]
- const arr2 = [arr[1].slice(1), arr[2].slice(1), arr[3].slice(1), arr[4].slice(1)]
- console.log(arr2)
- }
- // IndexOf Word
- // Спросите у пользователя строку из нескольких слов.Спросите у него искомое слово.Выведите, каким по счету является это слово в строке из нескольких слов.Если слово не найдено, выведите сообщение об этом(а не - 1)
- {
- const string = prompt('Введите в поле ниже любую строку, состоящую из нескольких слов', 'Или оставьте по умолчанию эту строку чтобы не париться').toLowerCase()
- const searchingWord = prompt('Какое слово будем искать?').toLowerCase()
- string.split(' ').indexOf(searchingWord) !== -1 ? alert(`Слово ${string.split(' ').indexOf(searchingWord) + 1}-ое по счету в строке`) : alert('Простите, такого слова нет в строке')
- }
- // Reverse
- // Добавьте в массив пять введенных пользователем через prompt элементов(используйте push).Создайте другой массив с этими же элементами в обратном порядке.Для этого извлекайте элементы из первого массива используя pop, добавляйте их во второй используя push
- {
- const arr = []
- arr.push(prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'))
- const arr2 = []
- arr2.push(arr.pop(), arr.pop(), arr.pop(), arr.pop(), arr.pop())
- console.log(arr2)
- }
- // Reverse 2
- // Переверните второй массив из предыдущего задания еще раз(последовательность будет как в первом массиве), используя shift и unshift
- {
- const arr = []
- arr.push(prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'), prompt('Введите в поле ниже строку или цифру'))
- const arr2 = []
- arr2.push(arr.pop(), arr.pop(), arr.pop(), arr.pop(), arr.pop())
- const arr3 = []
- arr3.unshift(arr2.shift())
- arr3.unshift(arr2.shift())
- arr3.unshift(arr2.shift())
- arr3.unshift(arr2.shift())
- arr3.unshift(arr2.shift())
- console.log(arr3)
- }
- // Copy
- // Скопируйте массив созданный в задании 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]]
- arrCopy = arr.slice()
- console.log(arr === arrCopy)
- console.log(arr[0] === arrCopy[0])
- }
- // альтернативный вариант
- {
- 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]]
- arrCopy = [...arr]
- console.log(arr === arrCopy)
- console.log(arr[0] === arrCopy[0])
- }
- // Deep Copy
- // Скопируйте массив созданный в задании 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]]
- const [a, b, c, d, e] = arr
- const arrCopy = [a.slice(), b.slice(), c.slice(), d.slice(), e.slice(),]
- console.log(arr === arrCopy)
- console.log(arr[0] === arrCopy[0])
- }
- // Array Equals
- // Создайте код, в котором будет две переменных с массивами(arr и arr2), которые равны друг другу(arr1 === arr2)
- {
- const arr1 = [1, 2, 3, 4, 5]
- const arr2 = arr1
- console.log(arr1 === arr2)
- }
- // Flat
- // Соберите все элементы всех вложенных массивов из задания Multiply table в один массив.Его длина должна быть равна 25. Используйте spread - оператор
- {
- 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]]
- const arrSum = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4],]
- console.log(arrSum.length)
- }
- // Destruct
- // Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию.Выведите их
- {
- const string = prompt('Введите, пожалуйста, в строке ниже какую-то фразу', 'Или оставьте эту фразу по умолчанию').toUpperCase()
- const [a, , b, , , , , , c] = string.split('')
- alert(`Первая буква: ${a};
- третья буква: ${b};
- девятая буква: ${c}.`)
- }
- // Destruct default
- // Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию.Если в строке таких букв не окажется задайте переменным значение по умолчанию!(восклицательный знак).Выведите эти переменные
- {
- const string = prompt('Введите, пожалуйста, в строке ниже какую-то фразу', 'Или оставьте эту фразу по умолчанию').toUpperCase()
- const [, a = '!', , b = '!', c = '!'] = string.split('')
- alert(`Вторая буква: ${a};
- четвертая буква: ${b};
- пятая буква: ${c}.`)
- }
- // Multiply table rest
- // Реализуйте задание Multiply table slice, используя оператор rest при деструктуризации.Используйте вложенную деструктуризацию.После получения четырех обрезанных вложенных массивов - соберите общий массив без нулей
- {
- 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]]
- let [a, [b, ...restFisrtArr], [c, ...restSecondArr], [d, ...restThirdArr], [e, ...restFourthArr]] = arr
- const arrResult = [restFisrtArr, restSecondArr, restThirdArr, restFourthArr]
- console.log(arrResult)
- }
- // For Alert
- // Есть массив["John", "Paul", "George", "Ringo"].Выведите каждое имя отдельным alert(), используя цикл for ....of
- {
- const arr = ["John", "Paul", "George", "Ringo"]
- for (let name of arr) {
- alert(name)
- }
- }
- // For Select Option
- // Используя заготовку выше, создайте выпадающий список с валютами.Элементы выпадающего списка создаются с помощью тэга < 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>"
- str += "<tr>"
- for (let name of names) {
- str += `<td>${name}</td>`
- }
- str += "</tr>"
- str += "</table>"
- document.write(str)
- }
- // For Table Vertical
- // Аналогично, добейтесь вывода имен в ячейки таблицы по вертикали(одна колонка с четырьмя строками, в каждой строке - одна ячейка)
- {
- 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)
- }
- // For Multiply Table
- // Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write.
- // Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой
- {
- 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]]
- let i = 0
- let str = `<table style="border-collapse: collapse;">`
- for (let string of arr) {
- str += (i % 2) ? `<tr style = "background-color:orange">` : `<tr style = "background-color:red">`
- i++
- for (let number of string) {
- str += `<td>${number}</td>`
- }
- str += `</tr>`
- }
- str += `</table>`
- document.write(str)
- }
- // Function Capitalize
- // Реализуйте задачу String: capitalize как отдельную функцию:
- {
- const capitalize = str => {
- let result = `${str[0].toUpperCase()}${str.slice(1).toLowerCase()}`
- return result //именно этот код обеспечит возврат результата функции
- }
- alert(capitalize(prompt('ВВедиТЕ ниже Любую ФраЗУ С РазныМ', 'ВВедиТЕ ниже Любую ФраЗУ С РазныМ')))
- }
- // Map Capitalize
- // Пусть пользователь вводит строку.Разбейте её по пробелам.Используя map и capitalize создайте массив в котором каждое слово будет с большой буквы.Соберите массив в строку обратно
- {
- const string = prompt('Введите в поле ниже фразу, которую вы считаете подходящей!', 'иЛИ оСТАВЬТЕ эту фразу по умолчанию').split(' ')
- const capsName = string.map(string => `${string[0].toUpperCase()}${string.slice(1).toLowerCase()}`)
- alert(capsName.join(' '))
- }
- // Filter Lexics
- // Пусть пользователь вводит строку.Разбейте её по пробелам. Используя filter верните true если элемент массива не состоит в определенном массиве недопустимых слов.Если же элемент массива - недопустимое слово, функция, переданная в filter должна возвращать false.Соберите массив в строку обратно
- {
- const string = prompt('Введите в поле ниже любую фразу с нецензурной лексикой', 'Или оставьте эту фразу с некрасивый и грубый словами').split(' ')
- const badWords = ['некрасивый', 'грубый']
- const result = string.filter(x => x !== badWords[0] && x !== badWords[1])
- alert(result.join(' '))
- }
- // Beep Lexics
- // Пусть пользователь вводит строку.Разбейте её по пробелам.Используя map и тернарный оператор верните из функции слово без изменений, если оно не состоит в каком - то другом массиве запрещенных слов.Если же слово состоит в этом списке, функция должна вернуть слово BEEP.Соберите массив обратно в строку через пробел.Таким образом вы сможете реализовать замену нескольких запрещенных слов на BEEP.
- {
- const string = prompt('Введите в поле ниже любую фразу с нецензурной лексикой', 'Или оставьте эту фразу с некрасивый и грубый словами').split(' ')
- const badWords = ['некрасивый', 'грубый']
- const result = string.map(x => x !== badWords[0] && x !== badWords[1] ? x : 'BEEP')
- alert(result.join(' '))
- }
- // Реализуйте задачу For Select Option используя reduce:
- {
- const currencies = ["USD", "EUR", "GBP", "UAH"]
- let str = "<select>"
- str += "<option>"
- str += currencies.reduce((a, b) => (`${a}</option>` + `<option>${b}</option>`))
- str += "</select>"
- document.write(str)
- }
- // НЕ РЕШЕНО
- // Пусть пользователь вводит строку с любыми парными скобками в ней, например[[]() { { { []() } } }]. Найдите место возможной ошибки(непарности) в этой строке.Для этого, каждую открывающую скобку добавляйте в стек. При нахождении закрывающей она должна соответствовать вершине стека.Если она не соответстует, выведите сообщение об ошибке и позицию в строке.Если соответствует - уберите скобку из стека.Если строка ошибок не содержит, порадуйте пользователя.
- // Например, строки с проблемой: [(}], [(()()()], {()()[()()}]{ { { } } }
- {
- }
|