main.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. // sort
  2. // Сделайте обобщенную функцию сортировки массива
  3. var persons = [{
  4. name: "Иван",
  5. age: 17
  6. },
  7. {
  8. name: "Мария",
  9. age: 35
  10. },
  11. {
  12. name: "Алексей",
  13. age: 73
  14. },
  15. {
  16. name: "Яков",
  17. age: 12
  18. },
  19. ]
  20. function sort(array, key, increase = true) {
  21. if (increase) {
  22. array.sort(function (a, b) {
  23. if (a[key] > b[key]) {
  24. return 1;
  25. }
  26. if (a[key] < b[key]) {
  27. return -1;
  28. }
  29. return 0;
  30. });
  31. } else {
  32. array.sort(function (a, b) {
  33. if (a[key] < b[key]) {
  34. return 1;
  35. }
  36. if (a[key] > b[key]) {
  37. return -1;
  38. }
  39. return 0;
  40. });
  41. }
  42. return array;
  43. };
  44. // array map
  45. // Используя Array.map приведите все строки в массиве к числу. Элементы других типов оставьте как есть
  46. let arrayMap = ["1", {}, null, undefined, "500", 700];
  47. let arrayMap2 = arrayMap.map((item) => {
  48. if (typeof item == "string") return isNaN(parseInt(item, 10)) ? item : parseInt(item, 10);
  49. return item;
  50. });
  51. // array reduce
  52. // Получите произведение всех чисел в массиве, используя Array.reduce. Не обрабатывайте типы данных, не являющиеся числом.
  53. let arrayReduce = ["0", 5, 3, "string", null];
  54. let arrPow = arrayReduce.reduce((a, b) => (typeof b == "number" ? a * b : a), 1);
  55. console.log(arrPow);
  56. // object filter
  57. // Напишите свою реализацию Array.filter для объектов
  58. var phone = {
  59. brand: "meizu",
  60. model: "m2",
  61. ram: 2,
  62. color: "black",
  63. };
  64. function objFilter(obj) {
  65. let obj2 = {};
  66. for (let key in obj) {
  67. if (key == "color" || obj[key] == 2) {
  68. obj2[key] = obj[key];
  69. }
  70. }
  71. return obj2;
  72. }
  73. console.log(objFilter(phone));
  74. // object map
  75. // Напишите свою реализацию Array.map для объектов
  76. let object = {
  77. name: "Иван",
  78. age: 17
  79. };
  80. function map(obj) {
  81. let temp = {};
  82. for (let i in obj) {
  83. temp[i + '_'] = i + '$';
  84. }
  85. return temp;
  86. }
  87. console.log(map(object))
  88. // Sum
  89. // Напишите функцию, который будет считать сумму арифметической прогрессии рекурсивно
  90. function progression( num, increment, rows) {
  91. if (rows <= 1) {
  92. return num;
  93. }
  94. return num + progression(num + increment, increment, rows - 1)
  95. }
  96. console.log(progression( 1,4, 8));