|
@@ -1,21 +1,21 @@
|
|
|
// ------------------------------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'}
|
|
|
+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, не используя никакие методы массива:
|
|
@@ -25,39 +25,39 @@
|
|
|
// arr = splice(arr, 2, 0, 100, 200, 300);
|
|
|
// console.log(arr); // [1, 2, 100, 200, 300, 3]
|
|
|
|
|
|
-// var arr = [1, 2, 4, 3];
|
|
|
-// function splice(arr) {
|
|
|
-
|
|
|
-// var arrArguments = [];
|
|
|
-// for (i=0; i < arguments.length; i++) {
|
|
|
-// arrArguments[i] = arguments[i];
|
|
|
-// }
|
|
|
-
|
|
|
-// if (arrArguments[2] == 1) {
|
|
|
-// for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
|
|
|
-// nwarr[j] = arr[i];
|
|
|
-// if (i == arrArguments[1]) {
|
|
|
-// nwarr[j] = arr[i+1];
|
|
|
-// i++;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }else if (arrArguments[2] == 0) {
|
|
|
-// for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
|
|
|
-// nwarr[j] = arr[i];
|
|
|
-// if (i == arrArguments[1]) {
|
|
|
-// nwarr[j] = arrArguments[3];
|
|
|
-// for (var a=4; a < arrArguments.length; a++) {
|
|
|
-// j++;
|
|
|
-// nwarr[j] = arrArguments[a];
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// arr = nwarr;
|
|
|
-// return console.log(arr);
|
|
|
-// }
|
|
|
-// splice(arr, 2, 1);
|
|
|
-// splice(arr, 2, 0, 100, 200, 300); // [1, 2, 100, 200, 300, 3]
|
|
|
+var arr = [1, 2, 4, 3];
|
|
|
+function splice(arr) {
|
|
|
+
|
|
|
+ var arrArguments = [];
|
|
|
+ for (i=0; i < arguments.length; i++) {
|
|
|
+ arrArguments[i] = arguments[i];
|
|
|
+ }
|
|
|
+
|
|
|
+if (arrArguments[2] == 1) {
|
|
|
+ for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
|
|
|
+ nwarr[j] = arr[i];
|
|
|
+ if (i == arrArguments[1]) {
|
|
|
+ nwarr[j] = arr[i+1];
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}else if (arrArguments[2] == 0) {
|
|
|
+ for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
|
|
|
+ nwarr[j] = arr[i];
|
|
|
+ if (i == arrArguments[1]) {
|
|
|
+ nwarr[j] = arrArguments[3];
|
|
|
+ for (var a=4; a < arrArguments.length; a++) {
|
|
|
+ j++;
|
|
|
+ nwarr[j] = arrArguments[a];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+arr = nwarr;
|
|
|
+return console.log(arr);
|
|
|
+}
|
|
|
+splice(arr, 2, 1);
|
|
|
+splice(arr, 2, 0, 100, 200, 300); // [1, 2, 100, 200, 300, 3]
|
|
|
|
|
|
// ------------------------------3--------------------------------------
|
|
|
// Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов,
|
|
@@ -68,71 +68,73 @@
|
|
|
// var sum = getSum(1, '1', 'one', [2, '2', 'two']);
|
|
|
// console.log( sum ); // 6
|
|
|
|
|
|
-// function sum() {
|
|
|
-// var summ = 0;
|
|
|
-// for(var i=0; i < arguments.length; i++){
|
|
|
-// if (isFinite(arguments[i])) {
|
|
|
-// summ+= +arguments[i];
|
|
|
-// }else if (arguments[i] instanceof Array ) {
|
|
|
-// summ += sum.apply(null, arguments[i])
|
|
|
-// }
|
|
|
-// }
|
|
|
-// return summ;
|
|
|
-// }
|
|
|
-// console.log( sum(1, '1', 'one', [2, '2', [2, '2', 'two'], 'two'], 1, 4, [2, '2', 'two'], 7) );
|
|
|
+function sum() {
|
|
|
+ var summ = 0;
|
|
|
+ for(var i=0; i < arguments.length; i++){
|
|
|
+ if (isFinite(arguments[i])) {
|
|
|
+ summ+= +arguments[i];
|
|
|
+ }else if (arguments[i] instanceof Array ) {
|
|
|
+ summ += sum.apply(null, arguments[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return summ;
|
|
|
+}
|
|
|
+console.log( sum(1, '1', 'one', [2, '2', [2, '2', 'two'], 'two'], 1, 4, [2, '2', 'two'], 7) );
|
|
|
|
|
|
// ------------------------------4--------------------------------------
|
|
|
// Напишите функцию, которая отрисовывает древовидный список ul li из предоставленной структуры любой глубины вложенности.
|
|
|
// Где рисовать меню определяется в параметрах функции, если DOM-элемент не был передан, то дерево рисуется в body:
|
|
|
// var data = [1, [21, 22, 23], 3, [41, [421, 422]], 5];
|
|
|
-// recursiveTree(data); <--------самое злое задание, время выполнения 100500 часов
|
|
|
-// var data = [1, [21, 22, 23], 3, [41, [421, 422]], 5];
|
|
|
-// var $item = $('<div>').prependTo('body');
|
|
|
+// recursiveTree(data); <--------самое злое задание, время выполнения 100500 часов
|
|
|
|
|
|
-// function recursiveTree(arr, place) {
|
|
|
-// place = place || 'body';
|
|
|
+var data = [1, [21, 22, 23], 3, [41, [421, 422]], 5];
|
|
|
+var $item = $('<div>').prependTo('body');
|
|
|
|
|
|
-// var $ul =$('<ul>').appendTo(place);
|
|
|
+function recursiveTree(arr, place) {
|
|
|
+ place = place || 'body';
|
|
|
|
|
|
-// for(var i=0; i < arr.length; i++){
|
|
|
-// if ( typeof arr[i] !== "object") {
|
|
|
-// $('<li>').text(arr[i]).appendTo($ul);
|
|
|
-// }else {
|
|
|
-// recursiveTree(arr[i], $ul);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
+ var $ul =$('<ul>').appendTo(place);
|
|
|
|
|
|
-// recursiveTree(data, $item);
|
|
|
+ for(var i=0; i < arr.length; i++){
|
|
|
+ if ( typeof arr[i] !== "object") {
|
|
|
+ $('<li>').text(arr[i]).appendTo($ul);
|
|
|
+ }else {
|
|
|
+ recursiveTree(arr[i], $ul);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+recursiveTree(data, $item);
|
|
|
|
|
|
// ------------------------------5--------------------------------------
|
|
|
// Напишите функцию, которая изображает в теге HTML картинку по данным, представляющим из себя двумерный массив закрашенных точек.
|
|
|
-// var cat = [
|
|
|
-// [2, 3, 4],
|
|
|
-// [1, 2, 8, 15],
|
|
|
-// [0, 1, 8, 9, 14, 15],
|
|
|
-// [0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
|
-// [0, 1, 3, 4, 5, 6, 8, 11, 12, 15],
|
|
|
-// [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 15],
|
|
|
-// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15],
|
|
|
-// [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],
|
|
|
-// [1, 2, 3, 6, 7, 11, 12],
|
|
|
-// [1, 2, 6, 7],
|
|
|
-// [1, 2, 3, 4, 6, 7, 8],
|
|
|
-// [1, 2, 3, 4, 6, 7, 8]
|
|
|
-// ];
|
|
|
-
|
|
|
-// var $item = $('<table>').css({'margin' : 'auto', 'background' : '#fff', 'border-collapse' : 'collapse', 'border-spacing' : 0}).prependTo('body');
|
|
|
-
|
|
|
-// for (var i = 0; i < cat.length; i++) {
|
|
|
-// var $tr = $('<tr>').appendTo($item);
|
|
|
-
|
|
|
-// for (var j = 0, k=0; (j < 16) || (k < cat[i].length); j++) {
|
|
|
-// if (j == cat[i][k]) {
|
|
|
-// k++;
|
|
|
-// $('<td>').css({'background' : '#000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
|
|
|
-// }else
|
|
|
-// $('<td>').css({'border' : '1px solid #000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
|
|
|
-
|
|
|
-// }
|
|
|
-// }
|
|
|
+
|
|
|
+var cat = [
|
|
|
+ [2, 3, 4],
|
|
|
+ [1, 2, 8, 15],
|
|
|
+ [0, 1, 8, 9, 14, 15],
|
|
|
+ [0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
|
+ [0, 1, 3, 4, 5, 6, 8, 11, 12, 15],
|
|
|
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 15],
|
|
|
+ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15],
|
|
|
+ [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],
|
|
|
+ [1, 2, 3, 6, 7, 11, 12],
|
|
|
+ [1, 2, 6, 7],
|
|
|
+ [1, 2, 3, 4, 6, 7, 8],
|
|
|
+ [1, 2, 3, 4, 6, 7, 8]
|
|
|
+];
|
|
|
+
|
|
|
+var $item = $('<table>').css({'margin' : 'auto', 'background' : '#fff', 'border-collapse' : 'collapse', 'border-spacing' : 0}).prependTo('body');
|
|
|
+
|
|
|
+for (var i = 0; i < cat.length; i++) {
|
|
|
+ var $tr = $('<tr>').appendTo($item);
|
|
|
+
|
|
|
+ for (var j = 0, k=0; (j < 16) || (k < cat[i].length); j++) {
|
|
|
+ if (j == cat[i][k]) {
|
|
|
+ k++;
|
|
|
+ $('<td>').css({'background' : '#000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
|
|
|
+ }else
|
|
|
+ $('<td>').css({'border' : '1px solid #000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
|
|
|
+
|
|
|
+ }
|
|
|
+}
|