script.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. $(document).ready(function() {
  2. $(".button").css({ // Стилизация кнопки для запуска задач
  3. "display": "inline-block",
  4. "background": "grey",
  5. "cursor": "pointer",
  6. "padding": "10px",
  7. "margin": "20px 0 0 20px",
  8. "border-radius": "10px",
  9. "color": "white"
  10. });
  11. $(".task").css({
  12. "width": "50%",
  13. "border-bottom": "1px solid black",
  14. "box-sizing": "border-box",
  15. "padding": "10px"
  16. });
  17. $("div.task:nth-child(11)").append("<img>"); // Задание 11, добавить картинку
  18. $("div.task:nth-child(11) img").attr({
  19. "src": "https://www.google.com.ua/logos/doodles/2017/bella-akhmadulinas-80th-birthday-5134676388741120.3-law.gif",
  20. "alt": "",
  21. "style": "border: 1px solid #ccc",
  22. "width": "200",
  23. })
  24. });
  25. // Задачки
  26. function exercises(par) {
  27. var arr = [task_1, task_2, task_3, task_4, task_5, task_6, task_7, task_8, task_9];
  28. arr[par-1]();
  29. };
  30. // 1. Создайте смешанный массив, например [1, 2, 3, ‘a’, ‘b’, ‘c’, ‘4’, ‘5’, ‘6’].
  31. // Посчитайте сумму всех его чисел, включая строковые. Выведите сумму в alert.
  32. function task_1() {
  33. var arr = [1, 2, 3, 'a', 'b', 'c', '4', '5', '6'],
  34. sum = 0;
  35. for(var i = 0; i < arr.length; i++) {
  36. if (!isNaN(+arr[i])) {
  37. sum = sum + +arr[i];
  38. }
  39. }
  40. alert(sum);
  41. }
  42. // 2. Сгенерируйте массив из N случайных чисел с двумя знаками после запятой.
  43. // Затем переберите массив и распечатайте в консоли значения его элементов,
  44. // возведенные в пятую степень, используя вложенные циклы.
  45. function task_2() {
  46. var n = +prompt("Введите длинну массива", ""),
  47. arr = [];
  48. for(var i = 0; i < n; i++) {
  49. var a = 1; // переменная в которую будет записываться произведение элементов массива до 5-ой степени.
  50. arr[i] = (Math.random()*10).toFixed(2);
  51. for(var j = 0; j < 5; j++) {
  52. a = a * arr[i];
  53. }
  54. console.log(a);
  55. }
  56. console.log(arr);
  57. }
  58. // 3. Создайте пустой массив. В цикле до n на каждой итерации запускайте prompt для ввода любых символов,
  59. // полученное значение добавляйте в конец созданного массива. После выхода из цикла
  60. // посчитайте сумму всех чисел массива и выведите в alert полученный результат.
  61. function task_3() {
  62. var arr = [],
  63. sum = 0,
  64. n = prompt("Введите n", "");
  65. for(var i = 0; i < n; i++) {
  66. arr.push(prompt("Введите элемент массива", ''));
  67. }
  68. for(var j = 0; j < arr.length; j++) {
  69. if (!isNaN(+arr[j])) {
  70. sum = sum + +arr[j];
  71. }
  72. }
  73. alert(sum);
  74. }
  75. // 4. Создайте массив со значениями: ‘AngularJS’, ‘jQuery’
  76. // Добавьте в начало массива значение ‘Backbone.js’
  77. // Добавьте в конец массива значения ‘ReactJS’ и ‘Vue.js’
  78. // Добавьте в массив значение ‘CommonJS’ вторым элементом
  79. // Найдите и удалите из массива значение ‘jQuery’, выведите его в alert со словами “Это здесь лишнее”
  80. // ET = 8 min;
  81. // AT = 5 min;
  82. function task_4() {
  83. var arr = ['AngularJS', 'jquery'];
  84. arr.unshift('Backbobe.js');
  85. arr.push('ReactJS', 'Vue.js');
  86. arr.splice(1,0,'CommonJS');
  87. alert( arr.splice(arr.indexOf('jquery'), 1) + " - это здесь лишнее" );
  88. alert(arr);
  89. }
  90. // 5. Создайте строку с текстом ‘Как однажды Жак звонарь сломал городской фонарь’.
  91. // Разбейте ее на массив слов, и переставьте слова в правильном порядке с помощью любых
  92. // методов массива (indexOf, splice ...). Затем объедините элементы массива в строку
  93. // и выведите в alert исходный и итоговый варианты.
  94. // ET = 5 min;
  95. // AT = 9 min;
  96. function task_5() {
  97. var str_1 = "Как однажды Жак звонарь сломал городской фонарь",
  98. str_2,
  99. arr = [];
  100. arr = str_1.split(" ");
  101. arr.splice(arr.indexOf("городской"), 0, arr.splice(arr.indexOf("сломал"), 1));
  102. str_2 = arr.join(" ");
  103. alert(str_1+"\n"+str_2);
  104. }
  105. // 6. Используя вложенные циклы, сформируйте двумерный массив, содержащий таблицу умножения
  106. function task_6() {
  107. var arr = [];
  108. for(var i = 1; i <=10; i++) {
  109. arr[i] = [];
  110. for(var j = 1; j <= 10; j++) {
  111. arr[i][j] = i + "x" + j + "=" + (i*j);
  112. }
  113. }
  114. alert(arr);
  115. }
  116. // 7. Создайте ассоциативный массив person, описывающий персону, с произвольным
  117. // количеством произвольных полей. С помощью оператора in или typeof проверьте наличие
  118. // в объекте свойства, прочитанного из prompt, и выведите его на экран.
  119. // Если свойства нет, то добавляйте его в объект со значением, которое также запрашивается из prompt.
  120. function task_7() {
  121. var person = {
  122. name: "Oleg",
  123. age: 24,
  124. },
  125. a;
  126. a = prompt("Введите свойство объекта", "");
  127. if (a in person) {
  128. alert(a + ": " + person[a]);
  129. } else {
  130. person[a] = prompt("Такого поля нет. Давайте добавим поле " + a + ". Введите значение этого свойства:", "");
  131. alert(a + ": " + person[a])
  132. }
  133. }
  134. // 8. Сгенерируйте объект, описывающий модель телефона, заполнив все свойства значениями,
  135. // прочитанными из prompt (например: brand, model, resolution, color...), не используя
  136. // вспомогательные переменные. Добавьте этот гаджет персоне, созданной ранее.
  137. function task_8() {
  138. var person = {
  139. firstname: "Oleg",
  140. age: 24,
  141. },
  142. phone = {};
  143. alert("Давайте добавим свойства телефону");
  144. while(true) {
  145. var a = prompt("Введите характеристику телефона (например: brand, model, resolution, color...):");
  146. if (a == null || a == "") { // характеристики вводятся пока не будет нажата Отмена или введена пустая строка
  147. break;
  148. } else
  149. if (a in phone) {
  150. alert(a + ": " + phone[a]);
  151. } else {
  152. phone[a] = prompt("Такой характеристики нету. Давайте добавим " + a + ". Введите значение этого свойства:", "");
  153. }
  154. }
  155. person.personPhone = phone;
  156. }
  157. // 9. Создайте объект dates для хранения дат. Первая дата – текущая, new Date.
  158. // Вторая дата – текущая дата минус 365 дней. Из prompt читается дата в формате yyyy-MM-dd.
  159. // Проверьте, попадает ли введенная дата в диапазон дат объекта dates.
  160. function task_9() {
  161. var dates = {
  162. currentDate: new Date(),
  163. },
  164. userDate = prompt("Введите дату в формате yyyy-MM-dd", ""),
  165. arr = [];
  166. arr = userDate.split("-");
  167. var a = new Date(arr[0], arr[1] - 1, arr[2]);
  168. dates.secondDate = new Date(dates.currentDate - 365*24*60*60*1000);
  169. if (a > dates.secondDate && a < dates.currentDate) {
  170. alert("Введенная дата попадает в диапазон");
  171. } else {
  172. alert("Введенная дата не попадает в диапазон");
  173. }
  174. }
  175. // 10. Создайте структуру данных, полностью описывающую html-разметку картинки
  176. // 11. С помощью jQuery добавьте картинку на страницу вместе со всеми атрибутами, используя созданную ранее структуру.