|
@@ -0,0 +1,307 @@
|
|
|
|
+$(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("<img>"); // Задание 11, добавить картинку
|
|
|
|
+ $("div.task:nth-child(11) img").attr({
|
|
|
|
+ "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",
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// Задачки
|
|
|
|
+
|
|
|
|
+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-разметку картинки
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// 11. С помощью jQuery добавьте картинку на страницу вместе со всеми атрибутами, используя созданную ранее структуру.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|