Entony 7 years ago
parent
commit
b6d72ecebd
3 changed files with 118 additions and 1 deletions
  1. 0 1
      17.08.2017/js/script.js
  2. 12 0
      module2/index.html
  3. 106 0
      module2/js/script.js

+ 0 - 1
17.08.2017/js/script.js

@@ -69,7 +69,6 @@ function Circle(x, y, r, color) {
  	}
 }
 
-
 var line = new Line(21, 43, 210, 250, 'red');
 var rect = new Rect(260, 130, 60, 120, 'green');
 var circle = new Circle(190, 120, 50, 'blue');

+ 12 - 0
module2/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="UTF-8">
+	<title>first task</title>
+</head>
+<body>
+	<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
+	<script src="js/script.js">
+	</script>
+</body>
+</html>

+ 106 - 0
module2/js/script.js

@@ -0,0 +1,106 @@
+// ------------------------------1--------------------------------------
+// Напишите функцию, которая в объекте меняет местами ключи и значения:
+// var obj = {
+//     'name': 'John',
+//     'email': 'john@mail.com'
+// };
+
+// function reverse(val) {
+// 	obj = val;
+// 	for (var key in obj) {
+//     	obj[obj[key]] = key;
+//     	delete obj[key] ;
+// 	}
+// 	return obj;
+// }
+// reverse(obj);
+// console.log(obj); // {'John': 'name', 'john@mail.com': 'email'}
+
+// ------------------------------2--------------------------------------
+// Напишите функцию-аналог splice, не используя никакие методы массива:
+// var arr = [1, 2, 4, 3];
+// arr = splice(arr, 2, 1);
+// console.log(arr); // [1, 2, 3]
+// arr = splice(arr, 2, 0, 100, 200, 300);
+// console.log(arr); // [1, 2, 100, 200, 300, 3]
+
+// var arr = [1, 2, 4, 3];
+// debugger;
+
+
+// function splice() {
+
+// var nwarr = [];
+// 	for (i=0; i < arguments.length; i++) {
+// 		nwarr[i] = arguments[i];
+// 	}
+
+// 	for (i=0, arr = [], j=0; i < nwarr[0].length; i++, j++) {
+// 		if 
+// 		arr[i] = nwarr[0][j];
+// 	}
+
+
+// // for (var i = 0; i < nwarr[0].length - nwarr[2]; i++ ) {
+// // 	if (i == nwarr[1]) {
+// // 		arr[i] = arr[i + nwarr[2]];
+// // 	}else if ( i + nwarr[1]  < i + nwarr[2]) {
+// // 		arr[i] = arr[i + nwarr[2] + 1];
+// // 	} 
+// // }
+// // arr.length = arr.length - nwarr[2];
+// // return console.log(arr);
+// // };
+
+// // function splice(arr) {
+// // 	array = arr;
+// // 	
+// // 	if (nwarr[2] === 1) {
+	
+// // 		for (i=0,arr = []; (i < array[2]); i++) {
+			
+// // 			arr[i] = array[i];
+// // 		}
+// 	// }
+// 	return console.log( arr );
+// }
+// splice(arr, 2, 1);
+// splice(arr, 2, 0, 100, 200, 300);
+
+// ------------------------------3--------------------------------------
+// Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов, 
+// число которых не ограничено. Функция работает только с числами (включая строковые). 
+// Если какой-то из параметров - массив, то к сумме добавляется также сумма значений этого массива 
+// (если какое-либо из значений этого массива также является массивом, то к результату добавляется 
+// также и сумма его значений, и так далее).
+// var sum = getSum(1, '1', 'one', [2, '2', 'two']);
+// console.log( sum ); // 6
+
+// function sum() {
+
+// 	for(var i=0, summ = 0; i<arguments.length; i++){
+// 		if ( arguments[i] instanceof Array ) {
+// 			summ += sum.apply(arguments[i]);
+// 		}
+// 		else if (isFinite(arguments[i])) {
+// 			summ += +arguments[i];
+// 		}
+// 	}
+// return console.log(summ);
+// }
+// sum(1, '1', 'one', [2, '2', 'two'], 1, 4, 5, 7);
+
+function getSum(){
+ var sum = 0;
+ for(var i=0; i< arguments.length; i++){
+  // sum+= +arguments[i]
+  if (isFinite(arguments[i])) 
+  	{sum+= +arguments[i];
+  } else if (typeof arguments[i] === "object") {
+   sum+= getSum.apply(null, arguments[i])
+  }
+ }
+ return console.log(sum);
+}
+
+getSum(1, '1', 'one', [2, '2', 'two'], 1, 4, 5, 7);