index.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Функции 2</title>
  6. </head>
  7. <body>
  8. <script>
  9. //---------sort
  10. let persons=[
  11. {name:'Ivan',age:17},
  12. {name:'Maria',age:35},
  13. {name:'Aleksei',age:73},
  14. {name:'Iykov',age:12}
  15. ];
  16. function so(arr,field,bool=true){
  17. if(bool==false){
  18. for(let i of arr){
  19. }
  20. arr.sort((a,b)=>a[field]>b[field]?-1:1);
  21. }
  22. if(bool==true){
  23. arr.sort((a,b)=>a[field]>b[field]?1:-1);
  24. }
  25. }
  26. /*function so(arr,field,bool=true){
  27. in process
  28. }*/
  29. so(persons,'age',false);
  30. console.log(persons);
  31. /*so(persons,'name',false);
  32. console.log(persons);*/
  33. //---------array map (done)
  34. /*let arr=['1',{},null,undefined,'500',700];
  35. let arr2=arr.map(function(x){
  36. if(x===String(x)){
  37. return Number(x);
  38. }
  39. return x;
  40. })
  41. console.log(arr2);
  42. let arr2 = function mAp(arr){
  43. let arr2=[];
  44. for(let num of arr){
  45. if(num===String(num)){
  46. arr2.push(Number(num));
  47. }else{
  48. arr2.push(num);
  49. }
  50. }
  51. return arr2;
  52. }
  53. console.log(arr2(arr))*/
  54. //---------array reduce (done)
  55. /*let arr=['0',5,3,'string',null];
  56. let num=arr.reduce((res,num)=>{
  57. if(num===Number(num)){
  58. res*=num;
  59. }
  60. return res;
  61. },1);
  62. console.log(num); //15
  63. let num2=function(arr){
  64. let res=1;
  65. for(let i of arr){
  66. if(i===Number(i)){
  67. res*=i;
  68. }
  69. }
  70. return res;
  71. }
  72. console.log(num2(arr)); //15*/
  73. //----------object filter
  74. /*let phone={
  75. brand:'meizu',
  76. model:'m2',
  77. ram:2,
  78. color:'black'
  79. };
  80. function filter(obj,cb){
  81. //in process
  82. }
  83. console.log(filter(phone,(key,value)=>key=='color'|| value==2));*/
  84. //---------object map
  85. //in process
  86. //---------sum (done)
  87. /*function sum(n){
  88. if(n==1){
  89. return n;
  90. }else{
  91. return n+sum(n-1);
  92. }
  93. }
  94. console.log(sum(10));*/
  95. //----------HTML Tree (blue belt - recursive) (done)
  96. var someTree = {
  97. tagName: "table",
  98. subTags: [
  99. {
  100. tagName: "tr",
  101. subTags: [
  102. {
  103. tagName: "td",
  104. text: "some text",
  105. },
  106. {
  107. tagName: "td",
  108. text: "some text 2",
  109. }
  110. ]
  111. }
  112. ],
  113. attrs: {
  114. border: 1,
  115. },
  116. }
  117. let str='';
  118. function createTree(obj){
  119. for(let item in obj){
  120. if(item=='tagName'){
  121. if(obj[item]=='table'){
  122. let [key] = Object.keys(someTree['attrs']);
  123. let [value]= Object.values(someTree['attrs']);
  124. str+=`<${someTree['tagName']} ${key}=${value}>`;
  125. }else{
  126. str+=`<${obj['tagName']}>`;
  127. }
  128. }
  129. if(item=='subTags'){
  130. for(let item2 of obj[item]){
  131. createTree(item2);
  132. }
  133. }
  134. if(item=='text'){
  135. str+=`${obj['text']}`;
  136. }
  137. }
  138. }
  139. createTree(someTree);
  140. console.log(str);
  141. document.write(str);
  142. </script>
  143. </body>
  144. </html>