script.js 8.6 KB

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