|
@@ -1,61 +1,324 @@
|
|
|
-//1. Confirms Сохраните в массив ответы на вопросы, заданные с помощью confirm. Используйте литеральный (декларативный)
|
|
|
+//1. Confirms +
|
|
|
+// Сохраните в массив ответы на вопросы, заданные с помощью confirm. Используйте литеральный (декларативный)
|
|
|
// синтаксис массивов ([....,....,....])
|
|
|
/*{
|
|
|
let arr = [confirm("Ты женщина?"), confirm("Тебе есть 18 лет"), confirm("Ты работаешь?")];
|
|
|
console.log(arr);
|
|
|
}*/
|
|
|
|
|
|
-//2. Prompts
|
|
|
+//2. Prompts +
|
|
|
// Сохраните в массив ответы на вопросы, заданные с помощью prompts. Используйте доступ к массиву по индексу
|
|
|
// и присвоение (arr[....] = ....)
|
|
|
/*{
|
|
|
- let array = new Array ([prompt("Введите ваше имя"), prompt("Введите вашу фамилию"), prompt("Введите ваш возраст")])
|
|
|
- let arr = [prompt("Введите ваше имя"), prompt("Введите вашу фамилию"), prompt("Введите ваш возраст")];
|
|
|
- console.log(arr);
|
|
|
- console.log(array)
|
|
|
-}*/
|
|
|
+ let array = [];
|
|
|
+ array[0] = prompt("Введите ваше имя");
|
|
|
+ array[1] = prompt("Введите вашу фамилию");
|
|
|
+ array[2] = prompt("Введите ваш возраст");
|
|
|
+} */
|
|
|
|
|
|
-//3. Item access
|
|
|
+//3. Item access +
|
|
|
//Попросите пользователя ввести (prompt) индекс в массиве. Выведите значение элемента по этому индексу. Попробуйте так
|
|
|
// же ввести индекс "length".
|
|
|
+/*{
|
|
|
+ let names = ["Маша", "Катя", "Наташа", "Оля", "Лена"];
|
|
|
+ let index = prompt("Введите индекс для выбора имени от 0 до 4");
|
|
|
+ alert(names[index]);
|
|
|
+ alert(names.length)
|
|
|
+}*/
|
|
|
|
|
|
-
|
|
|
-//4. Item change
|
|
|
+//4. Item change +
|
|
|
// Попросите пользователя ввести (prompt) индекс в массиве, а так же значение для этого индекса. Присвойте в введенный
|
|
|
// индекс введенное значение
|
|
|
+/*{
|
|
|
+ let names = ["Маша", "Катя"];
|
|
|
+ let index = prompt("Введите число(индекс) для добавления в масив от 0 до 10");
|
|
|
+ let name = prompt("Введите имя");
|
|
|
+ names[index]=name;
|
|
|
+} */
|
|
|
|
|
|
-//5. Multiply table
|
|
|
+//5. 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]];
|
|
|
+} */
|
|
|
|
|
|
-
|
|
|
- //6. Multiply table slice
|
|
|
+ //6. 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 newArr = arr.slice(1,5);
|
|
|
+ let a = newArr[0].shift();
|
|
|
+ let b = newArr[1].shift();
|
|
|
+ let c = newArr[2].shift();
|
|
|
+ let d = newArr[3].shift();
|
|
|
+}*/
|
|
|
|
|
|
-//7. IndexOf Word
|
|
|
-//Спросите у пользователя строку из нескольких слов. Спросите у него искомое слово. Выведите, каким по счету является это слово в строке из нескольких слов. Если слово не найдено, выведите сообщение об этом (а не -1)
|
|
|
+//7. IndexOf Word +
|
|
|
+//Спросите у пользователя строку из нескольких слов. Спросите у него искомое слово.
|
|
|
+// Выведите, каким по счету является это слово в строке из нескольких слов. Если слово не найдено, выведите сообщение об этом (а не -1)
|
|
|
+/*{
|
|
|
+ let ask = prompt("Введите несколько слов");
|
|
|
+ let word = ask.split(' ');
|
|
|
+ alert(`Искомое слово находится под индексом ${(word.indexOf('слово'))}`)
|
|
|
+}*/
|
|
|
|
|
|
-//8. Reverse
|
|
|
+//8. Reverse +
|
|
|
//Добавьте в массив пять введенных пользователем через prompt элементов(используйте push).
|
|
|
// Создайте другой массив с этими же элементами в обратном порядке. Для этого извлекайте элементы из первого массива
|
|
|
// используя pop, добавляйте их во второй используя push
|
|
|
+/*{
|
|
|
+ let name = prompt("Введите ваше имя");
|
|
|
+ let secondName = prompt("Введите вашу фамилию");
|
|
|
+ let patronymic = prompt("Введите ваше отчество");
|
|
|
+ let town = prompt("Введите город где вы живете");
|
|
|
+ let color = prompt("Введите ваш любимый цвет");
|
|
|
+
|
|
|
+ const profile = [];
|
|
|
+ profile.push(name, secondName, patronymic, town, color);
|
|
|
|
|
|
-//9. Reverse 2
|
|
|
+ const profileTwo = [];
|
|
|
+ color = profile.pop();
|
|
|
+ town = profile.pop();
|
|
|
+ patronymic = profile.pop();
|
|
|
+ secondName = profile.pop();
|
|
|
+ name = profile.pop();
|
|
|
+ profileTwo.push(name, secondName, patronymic, town,color);
|
|
|
+ console.log(profileTwo);
|
|
|
+} */
|
|
|
+
|
|
|
+//9. Reverse 2 +
|
|
|
//Переверните второй массив из предыдущего задания еще раз (последовательность будет как в первом массиве), используя
|
|
|
// shift и unshift
|
|
|
+/*{
|
|
|
+ let color = prompt("Введите ваш любимый цвет");
|
|
|
+ let town = prompt("Введите город где вы живете");
|
|
|
+ let patronymic = prompt("Введите ваше отчество");
|
|
|
+ let secondName = prompt("Введите вашу фамилию");
|
|
|
+ let name = prompt("Введите ваше имя");
|
|
|
+ const profile = [];
|
|
|
+ profile.push(color, town, patronymic, secondName, name);
|
|
|
|
|
|
-//10. Copy
|
|
|
+ color = profile.shift();
|
|
|
+ town = profile.shift();
|
|
|
+ patronymic = profile.shift();
|
|
|
+ secondName = profile.shift();
|
|
|
+ name = profile.shift();
|
|
|
+ const profileTwo = [];
|
|
|
+ profileTwo.unshift(name, secondName, patronymic, town, color)
|
|
|
+ console.log(profileTwo)
|
|
|
+} */
|
|
|
+
|
|
|
+//10. 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]];
|
|
|
|
|
|
-//11. Deep Copy
|
|
|
+ const copy = [...arr];
|
|
|
+ console.log(copy);
|
|
|
+} */
|
|
|
+
|
|
|
+//11. 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 newArr = arr.slice();
|
|
|
+} */
|
|
|
+
|
|
|
+//12. Array Equals +
|
|
|
+// Создайте код, в котором будет две переменных с массивами (arr и arr2), которые равны друг другу (arr1 === arr2)
|
|
|
+/*{
|
|
|
+ const arr = ["Маша","Катя","Наташа"];
|
|
|
+ const arr2 = arr;
|
|
|
+ console.log(arr === arr2)
|
|
|
+}*/
|
|
|
+
|
|
|
+//13. 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 newArr = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4]]
|
|
|
+ console.log(newArr)
|
|
|
+} */
|
|
|
+
|
|
|
+//14. Destruct +
|
|
|
+// Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию. Выведите их
|
|
|
+/*{
|
|
|
+ let word = [prompt("Введите любое слово")];
|
|
|
+ let [[a,,,,b,,,,c]] = word;
|
|
|
+ console.log(word);
|
|
|
+ alert(`Первая буква - ${a}, пятая буква - ${b}, девятая буква - ${c}`);
|
|
|
+}*/
|
|
|
+
|
|
|
+//15. Destruct default +
|
|
|
+// Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию.
|
|
|
+// Если в строке таких букв не окажется задайте переменным значение по умолчанию ! (восклицательный знак).
|
|
|
+/*{
|
|
|
+ let word = [prompt("Введите любое слово")];
|
|
|
+ let [[,a,,b,c]] = word;
|
|
|
+ if (a === undefined) {
|
|
|
+ a = "!";
|
|
|
+ } else if (b === undefined && c === undefined) {
|
|
|
+ b = "!";
|
|
|
+ c = "!";
|
|
|
+ } else if (c === undefined) {
|
|
|
+ c = "!";}
|
|
|
+ alert(`Вторая буква - ${a}, четвертая буква - ${b}, пятая буква - ${c}` )
|
|
|
+} */
|
|
|
|
|
|
-const a = 5
|
|
|
-const b = 10
|
|
|
-a + b //15
|
|
|
+//16. 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]];
|
|
|
+ const [[firstArr], [b,...secondArr], [c, ...thirdArr], [d, ...fourArr], [e, ...fiveArr]] = arr;
|
|
|
+ const arrNew = [...secondArr, ...thirdArr, ...fourArr, ...fiveArr];
|
|
|
+
|
|
|
+ console.log(arrNew)
|
|
|
+}*/
|
|
|
+
|
|
|
+//17. For Alert +
|
|
|
+// Есть массив ["John", "Paul", "George", "Ringo"]. Выведите каждое имя отдельным alert(), используя цикл for .... of
|
|
|
+/*{
|
|
|
+ const names = ["John", "Paul", "George", "Ringo"]
|
|
|
+ for (let name of names){
|
|
|
+ alert(name)
|
|
|
+ }
|
|
|
+}*/
|
|
|
+
|
|
|
+// 18. 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);
|
|
|
+} */
|
|
|
+
|
|
|
+//19. Horizontal +
|
|
|
+// Аналогично, добейтесь вывода имен в ячейки таблицы по горизонтали (одна строка с четырьмя ячейками)
|
|
|
+/*{
|
|
|
+ const names = ["John", "Paul", "George", "Ringo"]
|
|
|
+ let str = "<table width='50%' border='2px' bgcolor='yellow'>"
|
|
|
+ for (let name of names){
|
|
|
+ str +="<td>"+ name +"</td>"
|
|
|
+ }
|
|
|
+ document.write(str)
|
|
|
+}*/
|
|
|
+
|
|
|
+//.21 For Table Vertical +
|
|
|
+//Аналогично, добейтесь вывода имен в ячейки таблицы по вертикали(одна колонка с четырьмя строками,
|
|
|
+// в каждой строке - одна ячейка)
|
|
|
+/*{
|
|
|
+ const names = ["John", "Paul", "George", "Ringo"]
|
|
|
+ let str = "<table width='20%' bgcolor='yellow' border='1'>";
|
|
|
+ for (let name of names) {
|
|
|
+ str += "<tr>" + "</tr>";
|
|
|
+ str += "<td>" + name + "</td>"
|
|
|
+ }
|
|
|
+ str+= "</table>";
|
|
|
+ document.write(str);
|
|
|
+}*/
|
|
|
+
|
|
|
+//22. For Table Letters +
|
|
|
+//Используя заготовку выше, создайте таблицу 3x4. В каждой строке по три ячейки с буквами, четыре строки, так как 4 валюты в массиве.
|
|
|
+/*{
|
|
|
+ const currencies = ["USD", "EUR", "GBP", "UAH"];
|
|
|
+ let str = "<table border='1'>"
|
|
|
+ for (let currency of currencies){
|
|
|
+ str += "<tr>" + "</tr>"
|
|
|
+ console.log(currency)
|
|
|
+ for (let letter of currency){
|
|
|
+ str += "<td>" + letter + "</td>"
|
|
|
+ console.log(letter)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ str+= "</table>"
|
|
|
+ document.write(str)
|
|
|
+}*/
|
|
|
+
|
|
|
+//23. For Multiply Table +- подсветка
|
|
|
+// Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write
|
|
|
+//Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой
|
|
|
+/*{
|
|
|
+ let cols = [0,1,2,3,4];
|
|
|
+ let rows = [0,1,2,3,4];
|
|
|
+ document.write('<table border=1, cellpadding=0, cellspacing=0, width="50%">');
|
|
|
+ for (i = 0; i < cols.length; i++) {
|
|
|
+ document.write("<tr>");
|
|
|
+ for (k = 0; k < rows.length; k++) {
|
|
|
+ document.write("<td>"+(k*i)+"</td>");
|
|
|
+ }
|
|
|
+ document.write("</tr>");
|
|
|
+ }
|
|
|
+ document.write("</table>");
|
|
|
+} */
|
|
|
+
|
|
|
+//24. Function Capitalize +
|
|
|
+// Реализуйте задачу String: capitalize как отдельную функцию:
|
|
|
+/*{
|
|
|
+ const capitalize = str => {
|
|
|
+ let result = str[0].toUpperCase() + str.slice(1).toLowerCase();
|
|
|
+ return result
|
|
|
+ }
|
|
|
+ console.log(capitalize("cANBerRa")) //Canberra
|
|
|
+} */
|
|
|
+
|
|
|
+//25. Map Capitalize +
|
|
|
+// Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и capitalize создайте массив в котором
|
|
|
+// каждое слово будет с большой буквы. Соберите массив в строку обратно
|
|
|
+/*{
|
|
|
+ const ask = prompt("Введите несколько слов");
|
|
|
+ const arr = ask.split(` `)
|
|
|
+ const capitalize = arr.map(arr => arr[0].toUpperCase() + arr.substring(1))
|
|
|
+
|
|
|
+ console.log(capitalize);
|
|
|
+ console.log(capitalize.join(' '))
|
|
|
+}*/
|
|
|
+
|
|
|
+//26. Filter Lexics
|
|
|
+// Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент массива не
|
|
|
+// состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое слово, функция, переданная
|
|
|
+// в filter должна возвращать false. Соберите массив в строку обратно. блин какая сегодня
|
|
|
+
|
|
|
+
|
|
|
+//27. Beep Lexics
|
|
|
+// Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и тернарный оператор верните из функции
|
|
|
+// слово без изменений, если оно не состоит в каком-то другом массиве запрещенных слов. Если же слово состоит в этом
|
|
|
+// списке, функция должна вернуть слово BEEP. Соберите массив обратно в строку через пробел. Таким образом вы сможете
|
|
|
+// реализовать замену нескольких запрещенных слов на BEEP.
|
|
|
+/*{
|
|
|
+ const ask = prompt("Введите несколько слов");
|
|
|
+ const arr = ask.split(` `);
|
|
|
+}*/
|
|
|
+
|
|
|
+//28. Reduce HTML +-
|
|
|
+// Реализуйте задачу For Select Option используя reduce
|
|
|
+/*{
|
|
|
+ const currencies = ["USD", "EUR", "GBP", "UAH"];
|
|
|
+ let str = "<select>";
|
|
|
+ str += currencies.reduce( (a,b) => a + "<option>"+ b + "</option>", "");
|
|
|
+ str += "</select>";
|
|
|
+ document.write(str);
|
|
|
+}*/
|
|
|
|
|
|
-const f = (x, y) => x + y //функция, аналогичная коду выше, однако в этой строке никакого вычисления суммы не происходит
|
|
|
-f(5, 10) //15
|
|
|
-f(a, b) //15
|
|
|
-f(100, 200)
|
|
|
-console.log(f(100, 200))
|