js.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  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. const arr = [[0,0,0,0,0],
  119. [0,1,2,3,4],
  120. [0,2,4,6,8],
  121. [0,3,6,9,12],
  122. [0,4,8,12,16]];
  123. const newArr = arr.slice();
  124. } */
  125. //12. Array Equals +
  126. // Создайте код, в котором будет две переменных с массивами (arr и arr2), которые равны друг другу (arr1 === arr2)
  127. /*{
  128. const arr = ["Маша","Катя","Наташа"];
  129. const arr2 = arr;
  130. console.log(arr === arr2)
  131. }*/
  132. //13. Flat +
  133. // Соберите все элементы всех вложенных массивов из задания Multiply table в один массив.
  134. // Его длина должна быть равна 25.
  135. // Используйте spread-оператор
  136. /*{
  137. 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]];
  138. const newArr = [...arr[0], ...arr[1], ...arr[2], ...arr[3], ...arr[4]]
  139. console.log(newArr)
  140. } */
  141. //14. Destruct +
  142. // Извлеките первую, пятую и девятую букву из строки, введенной пользователем, используя деструктуризацию. Выведите их
  143. /*{
  144. let word = [prompt("Введите любое слово")];
  145. let [[a,,,,b,,,,c]] = word;
  146. console.log(word);
  147. alert(`Первая буква - ${a}, пятая буква - ${b}, девятая буква - ${c}`);
  148. }*/
  149. //15. Destruct default +
  150. // Извлеките вторую, четвертую и пятую букву из строки, введенной пользователем, используя деструктуризацию.
  151. // Если в строке таких букв не окажется задайте переменным значение по умолчанию ! (восклицательный знак).
  152. /*{
  153. let word = [prompt("Введите любое слово")];
  154. let [[,a,,b,c]] = word;
  155. if (a === undefined) {
  156. a = "!";
  157. } else if (b === undefined && c === undefined) {
  158. b = "!";
  159. c = "!";
  160. } else if (c === undefined) {
  161. c = "!";}
  162. alert(`Вторая буква - ${a}, четвертая буква - ${b}, пятая буква - ${c}` )
  163. } */
  164. //16. Multiply table rest +
  165. // Реализуйте задание Multiply table slice, используя оператор rest при деструктуризации. Используйте вложенную деструктуризацию.
  166. // После получения четырех обрезанных вложенных массивов - соберите общий массив без нулей
  167. /*{
  168. 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]];
  169. const [[firstArr], [b,...secondArr], [c, ...thirdArr], [d, ...fourArr], [e, ...fiveArr]] = arr;
  170. const arrNew = [...secondArr, ...thirdArr, ...fourArr, ...fiveArr];
  171. console.log(arrNew)
  172. }*/
  173. //17. For Alert +
  174. // Есть массив ["John", "Paul", "George", "Ringo"]. Выведите каждое имя отдельным alert(), используя цикл for .... of
  175. /*{
  176. const names = ["John", "Paul", "George", "Ringo"]
  177. for (let name of names){
  178. alert(name)
  179. }
  180. }*/
  181. // 18. For Select Option +
  182. // Используя заготовку выше, создайте выпадающий список с валютами.
  183. // Элементы выпадающего списка создаются с помощью тэга <option>
  184. /* {
  185. const currencies = ["USD", "EUR", "GBP", "UAH"]
  186. let str = "<select>";
  187. for (let currency of currencies){
  188. str += "<option>"+currency + "</option>";
  189. }
  190. str += "</select>"
  191. document.write(str);
  192. } */
  193. //19. Horizontal +
  194. // Аналогично, добейтесь вывода имен в ячейки таблицы по горизонтали (одна строка с четырьмя ячейками)
  195. /*{
  196. const names = ["John", "Paul", "George", "Ringo"]
  197. let str = "<table width='50%' border='2px' bgcolor='yellow'>"
  198. for (let name of names){
  199. str +="<td>"+ name +"</td>"
  200. }
  201. document.write(str)
  202. }*/
  203. //.21 For Table Vertical +
  204. //Аналогично, добейтесь вывода имен в ячейки таблицы по вертикали(одна колонка с четырьмя строками,
  205. // в каждой строке - одна ячейка)
  206. /*{
  207. const names = ["John", "Paul", "George", "Ringo"]
  208. let str = "<table width='20%' bgcolor='yellow' border='1'>";
  209. for (let name of names) {
  210. str += "<tr>" + "</tr>";
  211. str += "<td>" + name + "</td>"
  212. }
  213. str+= "</table>";
  214. document.write(str);
  215. }*/
  216. //22. For Table Letters +
  217. //Используя заготовку выше, создайте таблицу 3x4. В каждой строке по три ячейки с буквами, четыре строки, так как 4 валюты в массиве.
  218. /*{
  219. const currencies = ["USD", "EUR", "GBP", "UAH"];
  220. let str = "<table border='1'>"
  221. for (let currency of currencies){
  222. str += "<tr>" + "</tr>"
  223. console.log(currency)
  224. for (let letter of currency){
  225. str += "<td>" + letter + "</td>"
  226. console.log(letter)
  227. }
  228. }
  229. str+= "</table>"
  230. document.write(str)
  231. }*/
  232. //23. For Multiply Table +- подсветка
  233. // Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write
  234. //Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой
  235. /*{
  236. let cols = [0,1,2,3,4];
  237. let rows = [0,1,2,3,4];
  238. document.write('<table border=1, cellpadding=0, cellspacing=0, width="50%">');
  239. for (i = 0; i < cols.length; i++) {
  240. document.write("<tr>");
  241. for (k = 0; k < rows.length; k++) {
  242. document.write("<td>"+(k*i)+"</td>");
  243. }
  244. document.write("</tr>");
  245. }
  246. document.write("</table>");
  247. } */
  248. //24. Function Capitalize +
  249. // Реализуйте задачу String: capitalize как отдельную функцию:
  250. /*{
  251. const capitalize = str => {
  252. let result = str[0].toUpperCase() + str.slice(1).toLowerCase();
  253. return result
  254. }
  255. console.log(capitalize("cANBerRa")) //Canberra
  256. } */
  257. //25. Map Capitalize +
  258. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и capitalize создайте массив в котором
  259. // каждое слово будет с большой буквы. Соберите массив в строку обратно
  260. /*{
  261. const ask = prompt("Введите несколько слов");
  262. const arr = ask.split(` `)
  263. const capitalize = arr.map(arr => arr[0].toUpperCase() + arr.substring(1))
  264. console.log(capitalize);
  265. console.log(capitalize.join(' '))
  266. }*/
  267. //26. Filter Lexics
  268. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент массива не
  269. // состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое слово, функция, переданная
  270. // в filter должна возвращать false. Соберите массив в строку обратно. блин какая сегодня
  271. //27. Beep Lexics
  272. // Пусть пользователь вводит строку. Разбейте её по пробелам. Используя map и тернарный оператор верните из функции
  273. // слово без изменений, если оно не состоит в каком-то другом массиве запрещенных слов. Если же слово состоит в этом
  274. // списке, функция должна вернуть слово BEEP. Соберите массив обратно в строку через пробел. Таким образом вы сможете
  275. // реализовать замену нескольких запрещенных слов на BEEP.
  276. /*{
  277. const ask = prompt("Введите несколько слов");
  278. const arr = ask.split(` `);
  279. }*/
  280. //28. Reduce HTML +-
  281. // Реализуйте задачу For Select Option используя reduce
  282. /*{
  283. const currencies = ["USD", "EUR", "GBP", "UAH"];
  284. let str = "<select>";
  285. str += currencies.reduce( (a,b) => a + "<option>"+ b + "</option>", "");
  286. str += "</select>";
  287. document.write(str);
  288. }*/