瀏覽代碼

Массивы и объекты

oleg 6 年之前
父節點
當前提交
656e7bb586
共有 3 個文件被更改,包括 380 次插入0 次删除
  1. 73 0
      JS_06.03.2018/index.html
  2. 307 0
      JS_06.03.2018/script.js
  3. 二進制
      JS_06.03.2018/structure.png

File diff suppressed because it is too large
+ 73 - 0
JS_06.03.2018/index.html


+ 307 - 0
JS_06.03.2018/script.js

@@ -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 добавьте картинку на страницу вместе со всеми атрибутами, используя созданную ранее структуру.
+
+
+
+
+
+
+
+
+
+
+

二進制
JS_06.03.2018/structure.png