$(document).ready(function() { $(".button").css({ // Стилизация кнопки для запуска задач "display": "inline-block", "background": "grey", "cursor": "pointer", "padding": "10px", "margin": "20px 0 0 20px", "border-radius": "10px", "color": "white" }); $(".task").css({ "width": "50%", "border-bottom": "1px solid black", "box-sizing": "border-box", "padding": "10px" }); $("div.task:nth-child(11)").append(""); // Задание 11, добавить картинку $("div.task:nth-child(11) img").attr(image); }); // Задачки function exercises(par) { var arr = [task_1, task_2, task_3, task_4, task_5, task_6, task_7, task_8, task_9]; arr[par-1](); }; // 1. Создайте смешанный массив, например [1, 2, 3, ‘a’, ‘b’, ‘c’, ‘4’, ‘5’, ‘6’]. // Посчитайте сумму всех его чисел, включая строковые. Выведите сумму в alert. function task_1() { var arr = [1, 2, 3, 'a', 'b', 'c', '4', '5', '6'], sum = 0; for(var i = 0; i < arr.length; i++) { if (!isNaN(+arr[i])) { sum = sum + +arr[i]; } } alert(sum); } // 2. Сгенерируйте массив из N случайных чисел с двумя знаками после запятой. // Затем переберите массив и распечатайте в консоли значения его элементов, // возведенные в пятую степень, используя вложенные циклы. function task_2() { var n = +prompt("Введите длинну массива", ""), arr = []; for(var i = 0; i < n; i++) { var a = 1; // переменная в которую будет записываться произведение элементов массива до 5-ой степени. arr[i] = (Math.random()*10).toFixed(2); for(var j = 0; j < 5; j++) { a = a * arr[i]; } console.log(a); } console.log(arr); } // 3. Создайте пустой массив. В цикле до n на каждой итерации запускайте prompt для ввода любых символов, // полученное значение добавляйте в конец созданного массива. После выхода из цикла // посчитайте сумму всех чисел массива и выведите в alert полученный результат. function task_3() { var arr = [], sum = 0, n = prompt("Введите n", ""); for(var i = 0; i < n; i++) { arr.push(prompt("Введите элемент массива", '')); } for(var j = 0; j < arr.length; j++) { if (!isNaN(+arr[j])) { sum = sum + +arr[j]; } } alert(sum); } // 4. Создайте массив со значениями: ‘AngularJS’, ‘jQuery’ // Добавьте в начало массива значение ‘Backbone.js’ // Добавьте в конец массива значения ‘ReactJS’ и ‘Vue.js’ // Добавьте в массив значение ‘CommonJS’ вторым элементом // Найдите и удалите из массива значение ‘jQuery’, выведите его в alert со словами “Это здесь лишнее” // ET = 8 min; // AT = 5 min; function task_4() { var arr = ['AngularJS', 'jquery']; arr.unshift('Backbobe.js'); arr.push('ReactJS', 'Vue.js'); arr.splice(1,0,'CommonJS'); alert( arr.splice(arr.indexOf('jquery'), 1) + " - это здесь лишнее" ); alert(arr); } // 5. Создайте строку с текстом ‘Как однажды Жак звонарь сломал городской фонарь’. // Разбейте ее на массив слов, и переставьте слова в правильном порядке с помощью любых // методов массива (indexOf, splice ...). Затем объедините элементы массива в строку // и выведите в alert исходный и итоговый варианты. // ET = 5 min; // AT = 9 min; function task_5() { var str_1 = "Как однажды Жак звонарь сломал городской фонарь", str_2, arr = []; arr = str_1.split(" "); arr.splice(arr.indexOf("городской"), 0, arr.splice(arr.indexOf("сломал"), 1)); str_2 = arr.join(" "); alert(str_1+"\n"+str_2); } // 6. Используя вложенные циклы, сформируйте двумерный массив, содержащий таблицу умножения function task_6() { var arr = []; for(var i = 1; i <=10; i++) { arr[i] = []; for(var j = 1; j <= 10; j++) { arr[i][j] = i + "x" + j + "=" + (i*j); } } alert(arr); } // 7. Создайте ассоциативный массив person, описывающий персону, с произвольным // количеством произвольных полей. С помощью оператора in или typeof проверьте наличие // в объекте свойства, прочитанного из prompt, и выведите его на экран. // Если свойства нет, то добавляйте его в объект со значением, которое также запрашивается из prompt. function task_7() { var person = { name: "Oleg", age: 24, }, a; a = prompt("Введите свойство объекта", ""); if (a in person) { alert(a + ": " + person[a]); } else { person[a] = prompt("Такого поля нет. Давайте добавим поле " + a + ". Введите значение этого свойства:", ""); alert(a + ": " + person[a]) } } // 8. Сгенерируйте объект, описывающий модель телефона, заполнив все свойства значениями, // прочитанными из prompt (например: brand, model, resolution, color...), не используя // вспомогательные переменные. Добавьте этот гаджет персоне, созданной ранее. function task_8() { var person = { firstname: "Oleg", age: 24, }, phone = {}; alert("Давайте добавим свойства телефону"); while(true) { var a = prompt("Введите характеристику телефона (например: brand, model, resolution, color...):"); if (a == null || a == "") { // характеристики вводятся пока не будет нажата Отмена или введена пустая строка break; } else if (a in phone) { alert(a + ": " + phone[a]); } else { phone[a] = prompt("Такой характеристики нету. Давайте добавим " + a + ". Введите значение этого свойства:", ""); } } person.personPhone = phone; } // 9. Создайте объект dates для хранения дат. Первая дата – текущая, new Date. // Вторая дата – текущая дата минус 365 дней. Из prompt читается дата в формате yyyy-MM-dd. // Проверьте, попадает ли введенная дата в диапазон дат объекта dates. function task_9() { var dates = { currentDate: new Date(), }, userDate = prompt("Введите дату в формате yyyy-MM-dd", ""), arr = []; arr = userDate.split("-"); var a = new Date(arr[0], arr[1] - 1, arr[2]); dates.secondDate = new Date(dates.currentDate - 365*24*60*60*1000); if (a > dates.secondDate && a < dates.currentDate) { alert("Введенная дата попадает в диапазон"); } else { alert("Введенная дата не попадает в диапазон"); } } // 10. Создайте структуру данных, полностью описывающую html-разметку картинки var image = { src: "https://www.google.com.ua/logos/doodles/2017/bella-akhmadulinas-80th-birthday-5134676388741120.3-law.gif", alt: "", style: { border: "1px solid #ccc" }, width: 200 } // 11. С помощью jQuery добавьте картинку на страницу вместе со всеми атрибутами, используя созданную ранее структуру. // Решение вверху