Browse Source

Функции 2 _ 3 задачи не доделал

Vladislav342 2 years ago
parent
commit
93301eee01
1 changed files with 172 additions and 0 deletions
  1. 172 0
      HW_07/index.html

+ 172 - 0
HW_07/index.html

@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+	<title>Функции 2</title>
+</head>
+<body>
+
+	<script>
+
+//---------sort 
+		let persons=[
+			{name:'Ivan',age:17},
+			{name:'Maria',age:35},
+			{name:'Aleksei',age:73},
+			{name:'Iykov',age:12}
+		];
+
+		function so(arr,field,bool=true){
+			if(bool==false){
+				for(let i of arr){
+
+				}
+				arr.sort((a,b)=>a[field]>b[field]?-1:1);
+			}
+			if(bool==true){
+				arr.sort((a,b)=>a[field]>b[field]?1:-1);
+			}
+		}
+
+		/*function so(arr,field,bool=true){
+			in process
+		}*/
+
+		so(persons,'age',false);
+		console.log(persons);
+		/*so(persons,'name',false);
+		console.log(persons);*/
+
+//---------array map (done)
+		/*let arr=['1',{},null,undefined,'500',700];
+
+		let arr2=arr.map(function(x){
+			if(x===String(x)){
+				return Number(x);
+			}
+			return x;
+		})
+		console.log(arr2);
+
+		let arr2 = function mAp(arr){
+			let arr2=[];
+			for(let num of arr){
+				if(num===String(num)){
+					arr2.push(Number(num));
+				}else{
+					arr2.push(num);
+				}
+			}
+			return arr2;
+		}
+		console.log(arr2(arr))*/
+
+//---------array reduce (done)
+		/*let arr=['0',5,3,'string',null];
+		let num=arr.reduce((res,num)=>{
+			if(num===Number(num)){
+				res*=num;
+			}
+			return res;
+		},1);
+		console.log(num); //15 
+
+
+		let num2=function(arr){
+			let res=1;
+			for(let i of arr){
+				if(i===Number(i)){
+					res*=i;
+				}
+			}
+			return res;
+		}
+		console.log(num2(arr)); //15*/
+
+
+//----------object filter
+		/*let phone={
+			brand:'meizu',
+			model:'m2',
+			ram:2,
+			color:'black'
+		};
+
+		function filter(obj,cb){
+			//in process
+		}
+
+		console.log(filter(phone,(key,value)=>key=='color'|| value==2));*/
+
+//---------object map
+		//in process
+
+
+
+//---------sum (done)
+		/*function sum(n){
+			if(n==1){
+				return n;
+			}else{
+				return n+sum(n-1);
+			}
+		}
+		console.log(sum(10));*/
+
+
+
+//----------HTML Tree (blue belt - recursive) (done)
+		var someTree = {
+    		tagName: "table", 
+    		subTags: [ 
+        		{
+                    tagName: "tr",
+                    subTags: [
+                        {
+                           	tagName: "td",
+                            text: "some text",
+                        },
+                        {
+                            tagName: "td",
+                            text: "some text 2",
+                        }
+                    ]
+        		}
+    		],
+    		attrs: {
+        		border: 1,
+    		},
+		}
+
+		let str='';
+
+		function createTree(obj){
+			for(let item in obj){
+				if(item=='tagName'){
+					if(obj[item]=='table'){
+						let [key] = Object.keys(someTree['attrs']);
+						let [value]= Object.values(someTree['attrs']);
+						str+=`<${someTree['tagName']} ${key}=${value}>`;
+					}else{
+						str+=`<${obj['tagName']}>`;
+					}
+				}
+				if(item=='subTags'){
+					for(let item2 of obj[item]){
+						createTree(item2);
+					}
+				}
+				if(item=='text'){
+					str+=`${obj['text']}`;
+				}
+			}
+		}
+
+		createTree(someTree);
+		console.log(str);
+		document.write(str);
+		
+	</script>
+
+</body>
+</html>