script.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. // ------------------------------1--------------------------------------
  2. // Напишите функцию, которая в объекте меняет местами ключи и значения:
  3. // var obj = {
  4. // 'name': 'John',
  5. // 'email': 'john@mail.com'
  6. // };
  7. // function reverse(val) {
  8. // obj = val;
  9. // for (var key in obj) {
  10. // obj[obj[key]] = key;
  11. // delete obj[key] ;
  12. // }
  13. // return obj;
  14. // }
  15. // reverse(obj);
  16. // console.log(obj); // {'John': 'name', 'john@mail.com': 'email'}
  17. // ------------------------------2--------------------------------------
  18. // Напишите функцию-аналог splice, не используя никакие методы массива:
  19. // var arr = [1, 2, 4, 3];
  20. // arr = splice(arr, 2, 1);
  21. // console.log(arr); // [1, 2, 3]
  22. // arr = splice(arr, 2, 0, 100, 200, 300);
  23. // console.log(arr); // [1, 2, 100, 200, 300, 3]
  24. // var arr = [1, 2, 4, 3];
  25. // function splice(arr) {
  26. // var arrArguments = [];
  27. // for (i=0; i < arguments.length; i++) {
  28. // arrArguments[i] = arguments[i];
  29. // }
  30. // if (arrArguments[2] == 1) {
  31. // for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
  32. // nwarr[j] = arr[i];
  33. // if (i == arrArguments[1]) {
  34. // nwarr[j] = arr[i+1];
  35. // i++;
  36. // }
  37. // }
  38. // }else if (arrArguments[2] == 0) {
  39. // for (var i = 0, j = 0, nwarr= []; j < arrArguments.length; i++, j++) {
  40. // nwarr[j] = arr[i];
  41. // if (i == arrArguments[1]) {
  42. // nwarr[j] = arrArguments[3];
  43. // for (var a=4; a < arrArguments.length; a++) {
  44. // j++;
  45. // nwarr[j] = arrArguments[a];
  46. // }
  47. // }
  48. // }
  49. // }
  50. // arr = nwarr;
  51. // return console.log(arr);
  52. // }
  53. // splice(arr, 2, 1);
  54. // splice(arr, 2, 0, 100, 200, 300); // [1, 2, 100, 200, 300, 3]
  55. // ------------------------------3--------------------------------------
  56. // Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов,
  57. // число которых не ограничено. Функция работает только с числами (включая строковые).
  58. // Если какой-то из параметров - массив, то к сумме добавляется также сумма значений этого массива
  59. // (если какое-либо из значений этого массива также является массивом, то к результату добавляется
  60. // также и сумма его значений, и так далее).
  61. // var sum = getSum(1, '1', 'one', [2, '2', 'two']);
  62. // console.log( sum ); // 6
  63. // function sum() {
  64. // var summ = 0;
  65. // for(var i=0; i < arguments.length; i++){
  66. // if (isFinite(arguments[i])) {
  67. // summ+= +arguments[i];
  68. // }else if (arguments[i] instanceof Array ) {
  69. // summ += sum.apply(null, arguments[i])
  70. // }
  71. // }
  72. // return summ;
  73. // }
  74. // console.log( sum(1, '1', 'one', [2, '2', [2, '2', 'two'], 'two'], 1, 4, [2, '2', 'two'], 7) );
  75. // ------------------------------4--------------------------------------
  76. // Напишите функцию, которая отрисовывает древовидный список ul li из предоставленной структуры любой глубины вложенности.
  77. // Где рисовать меню определяется в параметрах функции, если DOM-элемент не был передан, то дерево рисуется в body:
  78. // var data = [1, [21, 22, 23], 3, [41, [421, 422]], 5];
  79. // recursiveTree(data); <--------самое злое задание, время выполнения 100500 часов
  80. // var data = [1, [21, 22, 23], 3, [41, [421, 422]], 5];
  81. // var $item = $('<div>').prependTo('body');
  82. // function recursiveTree(arr, place) {
  83. // place = place || 'body';
  84. // var $ul =$('<ul>').appendTo(place);
  85. // for(var i=0; i < arr.length; i++){
  86. // if ( typeof arr[i] !== "object") {
  87. // $('<li>').text(arr[i]).appendTo($ul);
  88. // }else {
  89. // recursiveTree(arr[i], $ul);
  90. // }
  91. // }
  92. // }
  93. // recursiveTree(data, $item);
  94. // ------------------------------5--------------------------------------
  95. // Напишите функцию, которая изображает в теге HTML картинку по данным, представляющим из себя двумерный массив закрашенных точек.
  96. // var cat = [
  97. // [2, 3, 4],
  98. // [1, 2, 8, 15],
  99. // [0, 1, 8, 9, 14, 15],
  100. // [0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15],
  101. // [0, 1, 3, 4, 5, 6, 8, 11, 12, 15],
  102. // [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 15],
  103. // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15],
  104. // [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],
  105. // [1, 2, 3, 6, 7, 11, 12],
  106. // [1, 2, 6, 7],
  107. // [1, 2, 3, 4, 6, 7, 8],
  108. // [1, 2, 3, 4, 6, 7, 8]
  109. // ];
  110. // var $item = $('<table>').css({'margin' : 'auto', 'background' : '#fff', 'border-collapse' : 'collapse', 'border-spacing' : 0}).prependTo('body');
  111. // for (var i = 0; i < cat.length; i++) {
  112. // var $tr = $('<tr>').appendTo($item);
  113. // for (var j = 0, k=0; (j < 16) || (k < cat[i].length); j++) {
  114. // if (j == cat[i][k]) {
  115. // k++;
  116. // $('<td>').css({'background' : '#000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
  117. // }else
  118. // $('<td>').css({'border' : '1px solid #000', 'height' : '40px', 'width' : '40px'}).appendTo($tr);
  119. // }
  120. // }