script-without-html.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. // Temperature
  2. // Оформите Temperature как функцию, в которую параметром передается температура в одной системе, а возвращается
  3. // в другой. Никаких prompt и console.log в коде быть не должно, если вы хотите в дальнейшем пользоваться этой
  4. // функцией где угодно в коде удобно. Нужен ли блок кода в функции для решения этой задачи?
  5. temperature: {
  6. const temperatureFromCtoF = c => c * 9 / 5 + 32;
  7. console.log(temperatureFromCtoF(36));
  8. console.log(temperatureFromCtoF(14));
  9. }
  10. // RGB
  11. // Оформите Number: RGB как функцию, в которую параметрами передаются три числа (r,g,b) => . Функция должна
  12. // возвращать строку в нотации #RRGGBB. Используя условия или тернарный оператор добейтесь что бы в результате
  13. // всегда было 7 символов, даже когда значение цвета меньше 15ти. Нужен ли блок кода этой функции?
  14. rgb: {
  15. const rgb = (r, g, b) => {
  16. let color = '#' + (r > 15 ? r.toString(16) : '0' + r.toString(16)) +
  17. (g > 15 ? g.toString(16) : '0' + g.toString(16)) +
  18. (b > 15 ? b.toString(16) : '0' + b.toString(16));
  19. return color;
  20. }
  21. console.log(rgb(5, 5, 5));
  22. console.log(rgb(13, 35, 456));
  23. }
  24. // Flats
  25. // Оформите Number: flats как функцию. Продумайте достаточное количество параметров для решения задачи. Функция
  26. // должна возвращать объект вида {entrance, floor}, где entrance - номер падика, floor - номер этажа на котором
  27. // находится квартира.
  28. flats: {
  29. const apartmentSearch = (numberOfFloors, numberOfApartmentsOnFloor, apartmentNumber) => {
  30. let apartmentLocation = {
  31. entrance: null,
  32. floor: null,
  33. }
  34. apartmentLocation.entrance = Math.ceil(apartmentNumber / (numberOfFloors * numberOfApartmentsOnFloor));
  35. apartmentLocation.floor = Math.ceil(apartmentNumber % (numberOfFloors * numberOfApartmentsOnFloor) /
  36. numberOfApartmentsOnFloor) || numberOfFloors;
  37. return apartmentLocation;
  38. }
  39. console.log(apartmentSearch(9, 4, 81));
  40. }
  41. // Credentials
  42. // Оформите задание String: credentials как функцию без параметров. Используйте функцию capitalize из домашнего
  43. // задания по массивам. Функция должна содержать вызовы prompt и возвращать объект вида {name, surname, fatherName, fullName}
  44. credentials: {
  45. const capitalize = (str) => {
  46. let result = str.trim().slice(0, 1).toUpperCase() + str.trim().slice(1).toLowerCase();
  47. return result;
  48. }
  49. const credentials = () => {
  50. let person = {}
  51. person.name = capitalize(prompt('What is your name?'));
  52. person.surname = capitalize(prompt('What is your surname?'));
  53. person.fatherName = capitalize(prompt('What is your middle name?'));
  54. person.fullName = person.surname + ' ' + person.name + ' ' + person.fatherName;
  55. return person;
  56. }
  57. credentials();
  58. }
  59. // New line
  60. // Оформите задание String: new line как функцию с параметром-строкой. Функция должна возвращать строку с
  61. // настоящими переносами.
  62. new_line: {
  63. const newLine = (str) => {
  64. let result = str.split('\\n').join('\n');
  65. return result;
  66. }
  67. alert(newLine(prompt("Enter the string. As a newline marker use '\\n'")));
  68. }
  69. // Prompt OR
  70. // Оформите задание Prompt: OR как функцию, которая принимает строку для prompt и значение по умолчанию.
  71. // Функция должна возвращать введенный текст или значение по умолчанию в случае отказа пользователя вводить
  72. // что-либо. Используйте функцию без блока кода (функцию в одно выражение)
  73. prompt_or: {
  74. const promptOr = (str, defaultValue) => prompt(str) || defaultValue;
  75. alert(promptOr('Enter something', 'error'));
  76. }
  77. // Login And Password
  78. // Оформите задание Login And Password как функцию, которая принимает два параметра - правильный логин и пароль
  79. // и возвращает true если логин и пароль введенные пользователями верны, или false если пользователь не смог.
  80. loginAndPassword: {
  81. const loginAndPassword = (correctLogin, correctPassword) => {
  82. let login = prompt('Enter your login');
  83. if (login === correctLogin) {
  84. let password = prompt('Enter your password');
  85. if (password === correctPassword) {
  86. return alert('Congratulations! You entered correct login and password');
  87. } else {
  88. return alert('Error! You entered wrong password');
  89. }
  90. } else {
  91. return alert('You entered wrong login');
  92. }
  93. }
  94. loginAndPassword('admin', 'qwerty');
  95. }
  96. // Filter Lexics
  97. // Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов
  98. // (['бляха', 'муха', "пляха", "шабля"], например). Функция должна возвращать строку без этих некорректных слов.
  99. filter_lexics: {
  100. const filterLexics = (str, arr) => {
  101. let filteredStr = str.split(' ').filter(item => !arr.includes(item.toLowerCase())).join(' ');
  102. return filteredStr;
  103. }
  104. alert(filterLexics(prompt('Enter the string'), ['бляха', 'муха', "пляха", "шабля"]));
  105. }
  106. // Array of objects sort
  107. // Сделайте обобщенную функцию сортировки массива с объектами
  108. // Функция позволяет отсортировать любой набор данных по имени поля (второй параметр). Третьим параметром идет
  109. // необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию.
  110. // По умолчанию (без третьего параметра) происходит сортировка по возрастанию.
  111. array_of_objects_sort: {
  112. var persons = [
  113. { name: "Иван", age: 17 },
  114. { name: "Мария", age: 35 },
  115. { name: "Алексей", age: 73 },
  116. { name: "Яков", age: 12 },
  117. ]
  118. const byField = (arr, fieldName, isAscending) => {
  119. let objSort = (a, b) => {
  120. if (a[fieldName] > b[fieldName]) {
  121. return isAscending || isAscending == undefined ? 1 : -1;
  122. } else if (a[fieldName] < b[fieldName]) {
  123. return isAscending || isAscending == undefined ? -1 : 1;
  124. } else {
  125. return 0;
  126. }
  127. }
  128. let sortedArr = arr.slice().sort(objSort);
  129. return sortedArr;
  130. }
  131. console.log(byField(persons, "age")); //сортирует по возрасту по возрастанию
  132. console.log(byField(persons, "name", false)); //сортирует по имени по убыванию
  133. }
  134. // Calc Func
  135. // Вспомните первое ДЗ по Javascript, в котором вы делали всякие расчеты используя код на Javascript. Оформите
  136. // это как функцию:
  137. // найдите все входящие данные, сделайте из них параметры
  138. // найдите переменную с результатом расчетов и сделайте так, что бы ваша функция возвращала этот результат.
  139. // Если результатов несколько, создайте объект из этих результатов и верните его.
  140. calc_func: {
  141. const calcFunc = (dayCount, duration) => {
  142. let totalHoursPerYear = ((dayCount * duration * 365) / 60).toFixed(2);
  143. return totalHoursPerYear;
  144. }
  145. alert("Вы тратите " + calcFunc(2, 10) + " часов в год на кофе-брейки");
  146. }