js.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. //1. Confirms +
  2. // Сохраните в массив ответы на вопросы, заданные с помощью confirm. Используйте литеральный (декларативный)
  3. // синтаксис массивов ([....,....,....])
  4. /*{
  5. let arr = [confirm("Ты женщина?"), confirm("Тебе есть 18 лет"), confirm("Ты работаешь?")];
  6. console.log(arr);
  7. }*/
  8. //2. Prompts +
  9. // Сохраните в массив ответы на вопросы, заданные с помощью prompts. Используйте доступ к массиву по индексу
  10. // и присвоение (arr[....] = ....)
  11. /*{
  12. let array = [];
  13. array[0] = prompt("Введите ваше имя");
  14. array[1] = prompt("Введите вашу фамилию");
  15. array[2] = prompt("Введите ваш возраст");
  16. } */
  17. //3. Item access +
  18. //Попросите пользователя ввести (prompt) индекс в массиве. Выведите значение элемента по этому индексу. Попробуйте так
  19. // же ввести индекс "length".
  20. /*{
  21. let names = ["Маша", "Катя", "Наташа", "Оля", "Лена"];
  22. let index = prompt("Введите индекс для выбора имени от 0 до 4");
  23. alert(names[index]);
  24. alert(names.length)
  25. }*/
  26. //4. Item change +
  27. // Попросите пользователя ввести (prompt) индекс в массиве, а так же значение для этого индекса. Присвойте в введенный
  28. // индекс введенное значение
  29. /*{
  30. let names = ["Маша", "Катя"];
  31. let index = prompt("Введите число(индекс) для добавления в масив от 0 до 10");
  32. let name = prompt("Введите имя");
  33. names[index]=name;
  34. } */
  35. //5. Multiply table +
  36. // Создайте таблицу умножения 5x5 используя декларативный синтаксис вложенных массивов const arr = [[....], [....], [....], .....].
  37. // Числа во вложенных массивах должны быть равны произведению индекса внешнего массива на индекс внутреннего массива: arr[2][3] === 6
  38. /*{
  39. const arr = [[0,0,0,0,0],
  40. [0,1,2,3,4],
  41. [0,2,4,6,8],
  42. [0,3,6,9,12],
  43. [0,4,8,12,16]];
  44. } */
  45. //6. Multiply table slice +
  46. //Используя slice создайте массив массивов (другую таблицу/матрицу) из таблицы умножения, в которой не будет нулей
  47. /*{
  48. const arr = [[0,0,0,0,0], [0,1,2,3,4], [0,2,4,6,8], [0,3,6,9,12], [0,4,8,12,16]];
  49. const newArr = arr.slice(1,5);
  50. let a = newArr[0].shift();
  51. let b = newArr[1].shift();
  52. let c = newArr[2].shift();
  53. let d = newArr[3].shift();
  54. }*/
  55. //7. IndexOf Word +
  56. //Спросите у пользователя строку из нескольких слов. Спросите у него искомое слово.
  57. // Выведите, каким по счету является это слово в строке из нескольких слов. Если слово не найдено, выведите сообщение об этом (а не -1)
  58. /*{
  59. let ask = prompt("Введите несколько слов");
  60. let word = ask.split(' ');
  61. alert(`Искомое слово находится под индексом ${(word.indexOf('слово'))}`)
  62. }*/
  63. //8. Reverse +
  64. //Добавьте в массив пять введенных пользователем через prompt элементов(используйте push).
  65. // Создайте другой массив с этими же элементами в обратном порядке. Для этого извлекайте элементы из первого массива
  66. // используя pop, добавляйте их во второй используя push
  67. /*{
  68. let name = prompt("Введите ваше имя");
  69. let secondName = prompt("Введите вашу фамилию");
  70. let patronymic = prompt("Введите ваше отчество");
  71. let town = prompt("Введите город где вы живете");
  72. let color = prompt("Введите ваш любимый цвет");
  73. const profile = [];
  74. profile.push(name, secondName, patronymic, town, color);
  75. const profileTwo = [];
  76. color = profile.pop();
  77. town = profile.pop();
  78. patronymic = profile.pop();
  79. secondName = profile.pop();
  80. name = profile.pop();
  81. profileTwo.push(name, secondName, patronymic, town,color);
  82. console.log(profileTwo);
  83. } */
  84. //9. Reverse 2 +
  85. //Переверните второй массив из предыдущего задания еще раз (последовательность будет как в первом массиве), используя
  86. // shift и unshift
  87. /*{
  88. let color = prompt("Введите ваш любимый цвет");
  89. let town = prompt("Введите город где вы живете");
  90. let patronymic = prompt("Введите ваше отчество");
  91. let secondName = prompt("Введите вашу фамилию");
  92. let name = prompt("Введите ваше имя");
  93. const profile = [];
  94. profile.push(color, town, patronymic, secondName, name);
  95. color = profile.shift();
  96. town = profile.shift();
  97. patronymic = profile.shift();
  98. secondName = profile.shift();
  99. name = profile.shift();
  100. const profileTwo = [];
  101. profileTwo.unshift(name, secondName, patronymic, town, color)
  102. console.log(profileTwo)
  103. } */
  104. //10. Copy +
  105. //Скопируйте массив созданный в задании Multiply table неглубоко
  106. /*{
  107. const arr = [[0,0,0,0,0],
  108. [0,1,2,3,4],
  109. [0,2,4,6,8],
  110. [0,3,6,9,12],
  111. [0,4,8,12,16]];
  112. const copy = [...arr];
  113. console.log(copy);
  114. } */
  115. //11. Deep Copy +
  116. //Скопируйте массив созданный в задании Multiply table включая вложенные массивы (глубокая копия)
  117. /*{
  118. let deepCopy = JSON.parse(JSON.stringify(table));
  119. console.log(deepCopy);
  120. } */
  121. //12. Array Equals +
  122. // Создайте код, в котором будет две переменных с массивами (arr и arr2), которые равны друг другу (arr1 === arr2)
  123. /*{
  124. const arr = ["Маша","Катя","Наташа"];
  125. const arr2 = arr;
  126. console.log(arr === arr2)
  127. }*/
  128. //13. Flat +
  129. // Соберите все элементы всех вложенных массивов из задания Multiply table в один массив.
  130. // Его длина должна быть равна 25.
  131. // Используйте spread-оператор
  132. /*{
  133. const arr = [[0,0,0,0,0], [0,1,2,3,4], [0,2,4,6,8], [0,3,6,9,12], [0,4,8,12,16]];
  134. const newArr = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4]]
  135. console.log(newArr)
  136. } */
  137. //14. Destruct +
  138. // Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию. Выведите их
  139. /*{
  140. let word = [prompt("Введите любое слово")];
  141. let [[a,,,,b,,,,c]] = word;
  142. console.log(word);
  143. alert(`Первая буква - ${a}, пятая буква - ${b}, девятая буква - ${c}`);
  144. }*/
  145. //15. Destruct default +
  146. // Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию.
  147. // Если в строке таких букв не окажется задайте переменным значение по умолчанию ! (восклицательный знак).
  148. /*{
  149. let word = [prompt("Введите любое слово")];
  150. let [[,a,,b,c]] = word;
  151. if (a === undefined) {
  152. a = "!";
  153. } else if (b === undefined && c === undefined) {
  154. b = "!";
  155. c = "!";
  156. } else if (c === undefined) {
  157. c = "!";}
  158. alert(`Вторая буква - ${a}, четвертая буква - ${b}, пятая буква - ${c}` )
  159. } */
  160. //16. Multiply table rest +
  161. // Реализуйте задание Multiply table slice, используя оператор rest при деструктуризации. Используйте вложенную деструктуризацию.
  162. // После получения четырех обрезанных вложенных массивов - соберите общий массив без нулей
  163. /*{
  164. const arr = [[0,0,0,0,0], [0,1,2,3,4], [0,2,4,6,8], [0,3,6,9,12], [0,4,8,12,16]];
  165. const [[firstArr], [b,...secondArr], [c, ...thirdArr], [d, ...fourArr], [e, ...fiveArr]] = arr;
  166. const arrNew = [...secondArr, ...thirdArr, ...fourArr, ...fiveArr];
  167. console.log(arrNew)
  168. }*/
  169. //17. For Alert +
  170. // Есть массив ["John", "Paul", "George", "Ringo"]. Выведите каждое имя отдельным alert(), используя цикл for .... of
  171. /*{
  172. const names = ["John", "Paul", "George", "Ringo"]
  173. for (let name of names){
  174. alert(name)
  175. }
  176. }*/
  177. // 18. For Select Option +
  178. // Используя заготовку выше, создайте выпадающий список с валютами.
  179. // Элементы выпадающего списка создаются с помощью тэга <option>
  180. /* {
  181. const currencies = ["USD", "EUR", "GBP", "UAH"]
  182. let str = "<select>";
  183. for (let currency of currencies){
  184. str += "<option>"+currency + "</option>";
  185. }
  186. str += "</select>"
  187. document.write(str);
  188. } */
  189. //19. Horizontal +
  190. // Аналогично, добейтесь вывода имен в ячейки таблицы по горизонтали (одна строка с четырьмя ячейками)
  191. /*{
  192. const names = ["John", "Paul", "George", "Ringo"]
  193. let str = "<table width='50%' border='2px' bgcolor='yellow'>"
  194. for (let name of names){
  195. str +="<td>"+ name +"</td>"
  196. }
  197. document.write(str)
  198. }*/
  199. //.21 For Table Vertical +
  200. //Аналогично, добейтесь вывода имен в ячейки таблицы по вертикали(одна колонка с четырьмя строками,
  201. // в каждой строке - одна ячейка)
  202. /*{
  203. const names = ["John", "Paul", "George", "Ringo"]
  204. let str = "<table width='20%' bgcolor='yellow' border='1'>";
  205. for (let name of names) {
  206. str += "<tr>" + "</tr>";
  207. str += "<td>" + name + "</td>"
  208. }
  209. str+= "</table>";
  210. document.write(str);
  211. }*/
  212. //22. For Table Letters +
  213. //Используя заготовку выше, создайте таблицу 3x4. В каждой строке по три ячейки с буквами, четыре строки, так как 4 валюты в массиве.
  214. /*{
  215. const currencies = ["USD", "EUR", "GBP", "UAH"];
  216. let str = "<table border='1'>"
  217. for (let currency of currencies){
  218. str += "<tr>" + "</tr>"
  219. console.log(currency)
  220. for (let letter of currency){
  221. str += "<td>" + letter + "</td>"
  222. console.log(letter)
  223. }
  224. }
  225. str+= "</table>"
  226. document.write(str)
  227. }*/
  228. //23. For Multiply Table +
  229. // Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write
  230. //Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой
  231. /*{
  232. const arr = [
  233. [0,0,0,0,0,0],
  234. [0,1,2,3,4,5],
  235. [0,2,4,6,8,10],
  236. [0,3,6,9,12,15],
  237. [0,4,8,12,16,20],
  238. [0,5,10,15,20,25]
  239. ];
  240. let str = "<table>"
  241. let i = 1
  242. for (let tr of arr){
  243. if (i++ % 2 === 0){
  244. str += '<tr style="background-color: lightgray;">'
  245. }else{
  246. str += "<tr>"
  247. }
  248. for (let td of tr){
  249. str += "<td>" + td + "</td>"
  250. }
  251. str += "</tr>"
  252. }
  253. str += "</table>"
  254. document.write(str)
  255. } */
  256. //24. Function Capitalize +
  257. // Реализуйте задачу String: capitalize как отдельную функцию:
  258. /*{
  259. const capitalize = str => {
  260. let result = str[0].toUpperCase() + str.slice(1).toLowerCase();
  261. return result
  262. }
  263. console.log(capitalize("cANBerRa")) //Canberra
  264. } */
  265. //25. Map Capitalize +
  266. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и capitalize создайте массив в котором
  267. // каждое слово будет с большой буквы. Соберите массив в строку обратно
  268. /*{
  269. const ask = prompt("Введите несколько слов");
  270. const arr = ask.split(` `)
  271. const capitalize = arr.map(arr => arr[0].toUpperCase() + arr.substring(1))
  272. console.log(capitalize);
  273. console.log(capitalize.join(' '))
  274. }*/
  275. //26. Filter Lexics
  276. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент массива не
  277. // состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое слово, функция, переданная
  278. // в filter должна возвращать false. Соберите массив в строку обратно.
  279. //27. Beep Lexics
  280. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и тернарный оператор верните из функции
  281. // слово без изменений, если оно не состоит в каком-то другом массиве запрещенных слов. Если же слово состоит в этом
  282. // списке, функция должна вернуть слово BEEP. Соберите массив обратно в строку через пробел. Таким образом вы сможете
  283. // реализовать замену нескольких запрещенных слов на BEEP.
  284. //28. Reduce HTML +-
  285. // Реализуйте задачу For Select Option используя reduce
  286. /*{
  287. const currencies = ["USD", "EUR", "GBP", "UAH"];
  288. let str = "<select>";
  289. str += currencies.reduce( (a,b) => a + "<option>"+ b + "</option>", "");
  290. str += "</select>";
  291. document.write(str);
  292. }*/