main.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. //3 persons
  2. //different fields
  3. //fields check
  4. let a = {
  5. personName: "Vasya",
  6. surname: "Pupkin",
  7. age: 11
  8. };
  9. let b = {
  10. personName: "Ivan",
  11. surname: "Ivanov",
  12. secondName: "Ivanovich"
  13. };
  14. let c = {
  15. personName: "Kiril",
  16. surname: "Kirilovich",
  17. sex: "male"
  18. }
  19. let arrayOptionalFields = ["age", "secondName", "sex"];
  20. let getOptionalFields = function(arr) {
  21. for(let item of arrayOptionalFields) {
  22. if(item in arr) {
  23. alert(arr[item]);
  24. }
  25. }
  26. }
  27. getOptionalFields(a);
  28. getOptionalFields(b);
  29. getOptionalFields(c);
  30. //array of persons
  31. //loop of persons
  32. //loop of name and surname
  33. let persons = [{
  34. personName: "Vlad",
  35. surname: "Vladlen",
  36. relationship: false
  37. }];
  38. persons.push(a, b, c);
  39. for(let person of persons) {
  40. console.log(person.name);
  41. console.log(person.surname);
  42. }
  43. //loop of loop of values
  44. for(let person of persons) {
  45. let keysArr = Object.keys(person);
  46. for(let i = 0; i < keysArr.length; i++) {
  47. console.log(person[keysArr[i]]);
  48. }
  49. }
  50. //fullName
  51. for(let person of persons) {
  52. person["fullName"] = `${person.personName} ${person.surname}`;
  53. }
  54. //serialize
  55. let personsJSON = JSON.stringify(persons);
  56. //deserialize
  57. let hodorPerson = {
  58. personName: "Hodor",
  59. surname: "Hodor",
  60. favoritWord: "Hodor"
  61. }
  62. let hodorPersonJSON = JSON.stringify(hodorPerson);
  63. persons.push(JSON.parse(hodorPersonJSON));
  64. //HTML
  65. //HTML optional fields
  66. //HTML tr color
  67. //HTML th optional
  68. let allPersonsKey = []; //В этой переменной я буду хранить все ключи которые есть в объектах person
  69. let uniquePersonsKey = []; //Тут хранятся все уникальные ключи
  70. let counter = 0; //Это переменная быдет служить проверкой на четность и нечетность, с помощью этой проверки я буду красить строки через один
  71. for(let person of persons) { //Весь этот цыкл отвечает за создание массива с уникальными ключами
  72. let personKeyArr = Object.keys(person);
  73. for(let item of personKeyArr) {
  74. allPersonsKey.push(item);
  75. }
  76. uniquePersonsKey = [...new Set(allPersonsKey)];
  77. }
  78. let str = "<table>"; //Начинаю рисовать таблицу
  79. str += "<tr>";
  80. for(let i = 0; i < uniquePersonsKey.length; i++) { //Рисую шапку таблицы перечисляя все уникальные ключи
  81. str += `<th>${uniquePersonsKey[i]}</th>`;
  82. }
  83. str += "</tr>";
  84. for(let person of persons) { //Отрисовка тела таблицы
  85. let backgroundColor;
  86. counter++;
  87. if(counter%2) { //Тут идет проверка, четный ход или не четный
  88. backgroundColor = "yellow";
  89. } else {
  90. backgroundColor = "green";
  91. }
  92. str += `<tr style="background-color: ${backgroundColor}">`;
  93. for(let i = 0; i < uniquePersonsKey.length; i++) {
  94. str += `<td>${person[uniquePersonsKey[i]]}</td>`;
  95. }
  96. str += "</tr>";
  97. }
  98. str += "</table>";
  99. document.write(str);
  100. //Задание на синий пояс.
  101. var someTree = {
  102. tagName: "table", //html tag
  103. subTags: [ //вложенные тэги
  104. {
  105. tagName: "tr",
  106. subTags: [
  107. {
  108. tagName: "td",
  109. text: "some text",
  110. },
  111. {
  112. tagName: "td",
  113. text: "some text 2",
  114. }
  115. ]
  116. }
  117. ],
  118. attrs:
  119. {
  120. border: 1,
  121. },
  122. }
  123. let str1 = `<${someTree.tagName}>`;
  124. for(let i = 0; i < someTree.subTags.length; i++) {
  125. str1 += `<${someTree.subTags[i].tagName}>`;
  126. for(let j = 0; j < someTree.subTags[i].subTags.length; j++) {
  127. str1 += `<${someTree.subTags[i].subTags[j].tagName}>${someTree.subTags[i].subTags[j].text}</${someTree.subTags[i].subTags[j].tagName}>`;
  128. }
  129. str1 += `</${someTree.subTags[i].tagName}>`;
  130. }
  131. str1 += `</${someTree.tagName}>`;
  132. document.write(str1);
  133. //destruct array
  134. let arr = [1,2,3,4,5, "a", "b", "c"];
  135. let [odd1, even1, odd2, even2, odd3, ...stringArr] = arr;
  136. //destruct string
  137. let arr1 = [1, "abc"];
  138. let [number, [s1, s2, s3]] = arr1;
  139. //destruct 2
  140. let obj = {name: 'Ivan',
  141. surname: 'Petrov',
  142. children: [{name: 'Maria'}, {name: 'Nikolay'}]};
  143. let [name1, name2] = obj.children;
  144. //Задание на черный пояс
  145. let predictArray = {
  146. 11: 1,
  147. };
  148. let history = "11";
  149. let userChose = 1;
  150. while(userChose) {
  151. userChose = prompt("Введите 1 или 2");
  152. alert(`Предсказываю ${predictArray[history]}`);
  153. predictArray[history] = +userChose;
  154. history += userChose;
  155. history = history.slice(1);
  156. }