index.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. // 3 persons
  2. // Сделать три ассоциативных массива a, b, c, в каждом из которых должны быть поля name и surname.
  3. // let a = {
  4. // name: 'S',
  5. // surname: 'H',
  6. // }
  7. // let b = {
  8. // name: 'S',
  9. // surname: 'H',
  10. // }
  11. // let c = {
  12. // name: 'S',
  13. // surname: 'H',
  14. // }
  15. // different fields
  16. // Добавьте некоторые другие поля (например age, fathername, sex (пол)) так, что бы набор полей отличался у разных объектов
  17. let a = {
  18. name: 'Ania',
  19. surname: 'Lampa',
  20. fathername: 'Ivanovna',
  21. }
  22. let b = {
  23. name: ' Serg',
  24. surname: 'Dez',
  25. age: 18,
  26. }
  27. let c = {
  28. name: ' Dema',
  29. surname: ' Antoshkin',
  30. sex: 'man',
  31. }
  32. // fields check
  33. // Проверьте наличие необязательных полей у каждого из этих массивов. Если поле найдено, выведите его с помощью alert. Проверку делайте по typeof или in в if.
  34. for (let key in a) {
  35. if (key != "name" && key != "surname") {
  36. alert(`${key} поле необезательно.`)
  37. }
  38. }
  39. for (let key in b) {
  40. if (key != "name" && key != "surname") {
  41. alert(`${key} поле необезательно.`)
  42. }
  43. }
  44. for (let key in c) {
  45. if (key != "name" && key != "surname") {
  46. alert(`${key} поле необезательно.`)
  47. }
  48. }
  49. // array of persons
  50. // Добавьте несколько ассоциативных массивов с персонами в обычный массив persons, например a,b,c. Так же добавьте персону литерально ({...}). Получится обычный массив с элементами-ассоциативными массивами с персонами.
  51. let persons = []
  52. persons.push(a);
  53. persons.push(b);
  54. persons.push(c);
  55. persons.push({ name: "Ilya", surname: "Babka", fathername: "nety", age: 31, });
  56. // loop of persons
  57. // Сделайте цикл, который выводит весь массив persons в форме объектов console.log(persons[i])
  58. for (let i = 0; i < persons.length; i++) {
  59. console.log(persons[i])
  60. }
  61. for (let i of persons) {
  62. console.log(i);
  63. }
  64. // loop of name and surname
  65. // Сделайте цикл, который выводит весь массив persons, но только Имя и Фамилию каждой персоны.
  66. for (let i of persons) {
  67. for (let [key, val] of Object.entries(i)) {
  68. if (key == "name" || key == "surname") {
  69. console.log([key, val]);
  70. }
  71. }
  72. }
  73. // loop of loop of values
  74. // Сделайте цикл, который выводит весь массив persons, но только значения всех полей из объектов. Используйте вложенный цикл
  75. for (let i of persons) {
  76. for (let value of Object.values(i)) {
  77. console.log(value);
  78. }
  79. }
  80. // fullName
  81. // Сделайте цикл, которых добавляет поле fullName в каждый объект, содержащий ФИО.Учтите, что поле fathername не является обязательным.
  82. for (let i of persons) {
  83. if (!i.fathername) {
  84. i.fathername = 'NET';
  85. }
  86. i.fullname = `${i.surname} ${i.name} ${i.fathername}`
  87. }
  88. console.log(persons)
  89. // serialize
  90. // Создайте JSON-строку из persons
  91. let json = JSON.stringify(persons);
  92. console.log(typeof json);
  93. console.log(json)
  94. // deserialize
  95. // Создайте ассоциативный массив с одной персоной из JSON-строки. Добавьте её в persons
  96. // Пыталась сделать с помощью интернета не получилось
  97. // HTML
  98. // Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия - колонки
  99. // let strResult = `<table border="2" width= "200px" bgcolor="pink" cellpadding="10px" align="center" >`;
  100. // strResult+= `<tr><td>name</td> <td>surname</td></tr>`;
  101. // for (i in persons) {
  102. // strResult += `<tr><td>${(persons[i].name) || ""}</td><td>${(persons[i].name) || ""}</td></tr>`;
  103. // };
  104. // strResult+= `</table>`;
  105. // document.write(strResult);
  106. // HTML optional fields
  107. // Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии. Колонки: поля, строки таблицы - персоны.
  108. // let strResult = `<table border="2" width= "200px" bgcolor="pink" cellpadding="10px" align="center" >`;
  109. // strResult+= `<tr><td>name</td> <td>surname</td></tr>`;
  110. // for (let i of persons) {
  111. // strResult+= `<tr>`;
  112. // for (let [key,value] of Object.entries(i)) {
  113. // strResult +=`<td>${key}</td><td>${value}</td>`;
  114. // }
  115. // strResult+=`</tr>`
  116. // }
  117. // strResult+='</table>';
  118. // document.write(strResult);
  119. // HTML tr color
  120. // Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга tr.
  121. let strResult = `<table border="2" width= "200px" bgcolor="pink" cellpadding="10px" align="center" >`;
  122. strResult+= `<tr><td>name</td> <td>surname</td></tr>`;
  123. k = 0;
  124. for (let i of persons) {
  125. // strResult+= `<tr>`;
  126. if (k % 2 == 0) strResult+= `<tr style="background-color: yellow;" >`;
  127. else strResult+= `<tr>`;
  128. for (let [key,value] of Object.entries(i)) {
  129. strResult +=`<td>${key}</td><td>${value}</td>`;
  130. }
  131. strResult+=`</tr>`
  132. k++
  133. }
  134. strResult+='</table>';
  135. document.write(strResult);
  136. // destruct array
  137. // let arr = [1,2,3,4,5, "a", "b", "c"]
  138. // напишите код, который используя деструктуризацию положит:
  139. // четные числа в переменные even1, even2,
  140. // нечетные в odd1, odd2, odd3,
  141. // буквы в отдельный массив
  142. let arr = [1,2,3,4,5, "a", "b", "c"]
  143. console.log(arr)
  144. let [odd1,even1,odd2,even2,odd3,...abc]=arr
  145. console.log(odd1)
  146. console.log(odd2)
  147. console.log(odd3)
  148. console.log(even1)
  149. console.log(even2)
  150. console.log(abc)
  151. // destruct string
  152. // let arr = [1, "abc"]
  153. // напишите код, который используя деструктуризацию положит:
  154. // число в переменную number
  155. // букву a в переменную s1
  156. // букву b в переменную s2
  157. // букву c в переменную s3
  158. let arr = [1, "abc"]
  159. let[number,abc]=arr
  160. let[s1,s2,s3] = abc.split("")
  161. console.log(number)
  162. console.log(s1)
  163. console.log(s2)
  164. console.log(s3)
  165. // destruct 2
  166. // let obj = {name: 'Ivan',
  167. // surname: 'Petrov',
  168. // children: [{name: 'Maria'}, {name: 'Nikolay'}]}
  169. // извлеките используя деструктуризацию имена детей в переменные name1 и name2
  170. let obj = {name: 'Ivan',
  171. surname: 'Petrov',
  172. children: [{name: 'Maria'}, {name: 'Nikolay'}]}
  173. let { children: [{ name: name1 }, { name: name2 }] } = obj
  174. console.log(name1)
  175. console.log(name2)
  176. // destruct 3
  177. // let arr = [1,2,3,4, 5,6,7,10]
  178. // извлеките используя деструктуризацию объектов два первых элемента и длину массива в переменные a, b и length
  179. let arr = [1,2,3,4, 5,6,7,10]
  180. let {length: length, [0]: a, [1]: b,}=arr
  181. console.log(length)
  182. console.log(a)
  183. console.log(b)
  184. // //////////////////////