@rogolev/value 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/CHANGELOG.md +142 -1
  2. package/docs/helpers/array/array_chunk.md +80 -0
  3. package/docs/helpers/array/array_chunk_with_keys.md +81 -0
  4. package/docs/helpers/array/array_column.md +110 -0
  5. package/docs/helpers/array/array_combine.md +77 -0
  6. package/docs/helpers/array/array_count_values.md +71 -0
  7. package/docs/helpers/array/array_diff.md +97 -0
  8. package/docs/helpers/array/array_diff_assoc.md +81 -0
  9. package/docs/helpers/array/array_diff_key.md +81 -0
  10. package/docs/helpers/array/array_diff_uassoc.md +101 -0
  11. package/docs/helpers/array/array_diff_ukey.md +101 -0
  12. package/docs/helpers/array/array_fill.md +81 -0
  13. package/docs/helpers/array/array_fill_keys.md +73 -0
  14. package/docs/helpers/array/array_filter.md +79 -0
  15. package/docs/helpers/array/array_flip.md +70 -0
  16. package/docs/helpers/array/array_index_max.md +78 -0
  17. package/docs/helpers/array/array_index_min.md +78 -0
  18. package/docs/helpers/array/array_intersect.md +91 -0
  19. package/docs/helpers/array/array_intersect_assoc.md +91 -0
  20. package/docs/helpers/array/array_intersect_key.md +91 -0
  21. package/docs/helpers/array/array_intersect_uassoc.md +101 -0
  22. package/docs/helpers/array/array_intersect_ukey.md +101 -0
  23. package/docs/helpers/array/array_key_exists.md +73 -0
  24. package/docs/helpers/array/array_key_first.md +62 -0
  25. package/docs/helpers/array/array_key_last.md +62 -0
  26. package/docs/helpers/array/array_key_to_lower_case.md +57 -0
  27. package/docs/helpers/array/array_key_to_upper_case.md +57 -0
  28. package/docs/helpers/array/array_keys.md +62 -0
  29. package/docs/helpers/array/array_map.md +69 -0
  30. package/docs/helpers/array/array_merge.md +67 -0
  31. package/docs/helpers/array/array_merge_recursive.md +86 -0
  32. package/docs/helpers/array/array_pad.md +83 -0
  33. package/docs/helpers/array/array_pop.md +64 -0
  34. package/docs/helpers/array/array_product.md +62 -0
  35. package/docs/helpers/array/array_push.md +57 -0
  36. package/docs/helpers/array/array_rand.md +99 -0
  37. package/docs/helpers/array/array_reduce.md +77 -0
  38. package/docs/helpers/array/array_replace.md +85 -0
  39. package/docs/helpers/array/array_replace_recursive.md +87 -0
  40. package/docs/helpers/array/array_reverse.md +55 -0
  41. package/docs/helpers/array/array_search.md +74 -0
  42. package/docs/helpers/array/array_shift.md +64 -0
  43. package/docs/helpers/array/array_slice.md +65 -0
  44. package/docs/helpers/array/array_splice.md +103 -0
  45. package/docs/helpers/array/array_sum.md +55 -0
  46. package/docs/helpers/array/array_udiff.md +97 -0
  47. package/docs/helpers/array/array_udiff_assoc.md +101 -0
  48. package/docs/helpers/array/array_udiff_uassoc.md +88 -0
  49. package/docs/helpers/array/array_uintersect.md +101 -0
  50. package/docs/helpers/array/array_uintersect_assoc.md +102 -0
  51. package/docs/helpers/array/array_uintersect_uassoc.md +135 -0
  52. package/docs/helpers/array/array_unique.md +54 -0
  53. package/docs/helpers/array/array_unshift.md +58 -0
  54. package/docs/helpers/array/array_values.md +54 -0
  55. package/docs/helpers/array/array_walk.md +87 -0
  56. package/docs/helpers/array/array_walk_recursive.md +93 -0
  57. package/docs/helpers/array/count.md +54 -0
  58. package/docs/helpers/array/in_array.md +65 -0
  59. package/docs/helpers/array/natsort.md +60 -0
  60. package/docs/helpers/array/range.md +76 -0
  61. package/docs/helpers/array/shuffle.md +74 -0
  62. package/docs/helpers/array/sort.md +79 -0
  63. package/docs/helpers/is_char.md +84 -0
  64. package/docs/helpers/string/is_digit_char.md +70 -0
  65. package/docs/helpers/string/is_whitespace_char.md +70 -0
  66. package/docs/helpers/string/natcompare.md +69 -0
  67. package/docs/helpers/string/natcompare_numeric.md +70 -0
  68. package/docs/helpers.md +125 -1
  69. package/index.mjs +66 -1
  70. package/package.json +2 -1
  71. package/prettier.config.mjs +2 -1
  72. package/src/helpers/array/array_chunk.mjs +102 -0
  73. package/src/helpers/array/array_chunk_with_keys.mjs +102 -0
  74. package/src/helpers/array/array_column.mjs +131 -0
  75. package/src/helpers/array/array_combine.mjs +26 -0
  76. package/src/helpers/array/array_count_values.mjs +82 -0
  77. package/src/helpers/array/array_diff.mjs +77 -0
  78. package/src/helpers/array/array_diff_assoc.mjs +56 -0
  79. package/src/helpers/array/array_diff_key.mjs +56 -0
  80. package/src/helpers/array/array_diff_uassoc.mjs +76 -0
  81. package/src/helpers/array/array_diff_ukey.mjs +71 -0
  82. package/src/helpers/array/array_fill.mjs +108 -0
  83. package/src/helpers/array/array_fill_keys.mjs +90 -0
  84. package/src/helpers/array/array_filter.mjs +105 -0
  85. package/src/helpers/array/array_flip.mjs +58 -0
  86. package/src/helpers/array/array_index_max.mjs +82 -0
  87. package/src/helpers/array/array_index_min.mjs +82 -0
  88. package/src/helpers/array/array_intersect.mjs +71 -0
  89. package/src/helpers/array/array_intersect_assoc.mjs +67 -0
  90. package/src/helpers/array/array_intersect_key.mjs +67 -0
  91. package/src/helpers/array/array_intersect_uassoc.mjs +77 -0
  92. package/src/helpers/array/array_intersect_ukey.mjs +72 -0
  93. package/src/helpers/array/array_key_exists.mjs +83 -0
  94. package/src/helpers/array/array_key_first.mjs +73 -0
  95. package/src/helpers/array/array_key_last.mjs +74 -0
  96. package/src/helpers/array/array_key_to_lower_case.mjs +71 -0
  97. package/src/helpers/array/array_key_to_upper_case.mjs +71 -0
  98. package/src/helpers/array/array_keys.mjs +65 -0
  99. package/src/helpers/array/array_map.mjs +84 -0
  100. package/src/helpers/array/array_merge.mjs +95 -0
  101. package/src/helpers/array/array_merge_recursive.mjs +153 -0
  102. package/src/helpers/array/array_pad.mjs +105 -0
  103. package/src/helpers/array/array_pop.mjs +82 -0
  104. package/src/helpers/array/array_product.mjs +67 -0
  105. package/src/helpers/array/array_push.mjs +75 -0
  106. package/src/helpers/array/array_rand.mjs +129 -0
  107. package/src/helpers/array/array_reduce.mjs +90 -0
  108. package/src/helpers/array/array_replace.mjs +25 -0
  109. package/src/helpers/array/array_replace_recursive.mjs +109 -0
  110. package/src/helpers/array/array_reverse.mjs +62 -0
  111. package/src/helpers/array/array_search.mjs +104 -0
  112. package/src/helpers/array/array_shift.mjs +78 -0
  113. package/src/helpers/array/array_slice.mjs +99 -0
  114. package/src/helpers/array/array_splice.mjs +218 -0
  115. package/src/helpers/array/array_sum.mjs +60 -0
  116. package/src/helpers/array/array_udiff.mjs +91 -0
  117. package/src/helpers/array/array_udiff_assoc.mjs +71 -0
  118. package/src/helpers/array/array_udiff_uassoc.mjs +124 -0
  119. package/src/helpers/array/array_uintersect.mjs +72 -0
  120. package/src/helpers/array/array_uintersect_assoc.mjs +77 -0
  121. package/src/helpers/array/array_uintersect_uassoc.mjs +121 -0
  122. package/src/helpers/array/array_unique.mjs +77 -0
  123. package/src/helpers/array/array_unshift.mjs +64 -0
  124. package/src/helpers/array/array_values.mjs +57 -0
  125. package/src/helpers/array/array_walk.mjs +95 -0
  126. package/src/helpers/array/array_walk_recursive.mjs +104 -0
  127. package/src/helpers/array/count.mjs +57 -0
  128. package/src/helpers/array/in_array.mjs +67 -0
  129. package/src/helpers/array/natsort.mjs +62 -0
  130. package/src/helpers/array/range.mjs +121 -0
  131. package/src/helpers/array/shuffle.mjs +73 -0
  132. package/src/helpers/array/sort.mjs +69 -0
  133. package/src/helpers/is_char.mjs +54 -0
  134. package/src/helpers/string/is_digit_char.mjs +60 -0
  135. package/src/helpers/string/is_whitespace_char.mjs +54 -0
  136. package/src/helpers/string/natcompare.mjs +107 -0
  137. package/src/helpers/string/natcompare_numeric.mjs +131 -0
  138. package/tests/helpers/array/array_chunk.test.mjs +49 -0
  139. package/tests/helpers/array/array_chunk_with_keys.test.mjs +45 -0
  140. package/tests/helpers/array/array_column.test.mjs +87 -0
  141. package/tests/helpers/array/array_combine.test.mjs +41 -0
  142. package/tests/helpers/array/array_count_values.test.mjs +40 -0
  143. package/tests/helpers/array/array_diff.test.mjs +78 -0
  144. package/tests/helpers/array/array_diff_assoc.test.mjs +64 -0
  145. package/tests/helpers/array/array_diff_key.test.mjs +64 -0
  146. package/tests/helpers/array/array_diff_uassoc.test.mjs +73 -0
  147. package/tests/helpers/array/array_diff_ukey.test.mjs +77 -0
  148. package/tests/helpers/array/array_fill.test.mjs +47 -0
  149. package/tests/helpers/array/array_fill_keys.test.mjs +35 -0
  150. package/tests/helpers/array/array_filter.test.mjs +38 -0
  151. package/tests/helpers/array/array_flip.test.mjs +33 -0
  152. package/tests/helpers/array/array_index_max.test.mjs +41 -0
  153. package/tests/helpers/array/array_index_min.test.mjs +41 -0
  154. package/tests/helpers/array/array_intersect.test.mjs +65 -0
  155. package/tests/helpers/array/array_intersect_assoc.test.mjs +65 -0
  156. package/tests/helpers/array/array_intersect_key.test.mjs +65 -0
  157. package/tests/helpers/array/array_intersect_uassoc.test.mjs +76 -0
  158. package/tests/helpers/array/array_intersect_ukey.test.mjs +74 -0
  159. package/tests/helpers/array/array_key_exists.test.mjs +36 -0
  160. package/tests/helpers/array/array_key_first.test.mjs +29 -0
  161. package/tests/helpers/array/array_key_last.test.mjs +29 -0
  162. package/tests/helpers/array/array_key_to_lower_case.test.mjs +23 -0
  163. package/tests/helpers/array/array_key_to_upper_case.test.mjs +23 -0
  164. package/tests/helpers/array/array_keys.test.mjs +27 -0
  165. package/tests/helpers/array/array_map.test.mjs +32 -0
  166. package/tests/helpers/array/array_merge.test.mjs +37 -0
  167. package/tests/helpers/array/array_merge_recursive.test.mjs +65 -0
  168. package/tests/helpers/array/array_pad.test.mjs +48 -0
  169. package/tests/helpers/array/array_pop.test.mjs +29 -0
  170. package/tests/helpers/array/array_product.test.mjs +33 -0
  171. package/tests/helpers/array/array_push.test.mjs +31 -0
  172. package/tests/helpers/array/array_rand.test.mjs +59 -0
  173. package/tests/helpers/array/array_reduce.test.mjs +44 -0
  174. package/tests/helpers/array/array_replace.test.mjs +46 -0
  175. package/tests/helpers/array/array_replace_recursive.test.mjs +46 -0
  176. package/tests/helpers/array/array_reverse.test.mjs +31 -0
  177. package/tests/helpers/array/array_search.test.mjs +48 -0
  178. package/tests/helpers/array/array_shift.test.mjs +29 -0
  179. package/tests/helpers/array/array_slice.test.mjs +49 -0
  180. package/tests/helpers/array/array_splice.test.mjs +67 -0
  181. package/tests/helpers/array/array_sum.test.mjs +27 -0
  182. package/tests/helpers/array/array_udiff.test.mjs +95 -0
  183. package/tests/helpers/array/array_udiff_assoc.test.mjs +77 -0
  184. package/tests/helpers/array/array_udiff_uassoc.test.mjs +89 -0
  185. package/tests/helpers/array/array_uintersect.test.mjs +78 -0
  186. package/tests/helpers/array/array_uintersect_assoc.test.mjs +80 -0
  187. package/tests/helpers/array/array_uintersect_uassoc.test.mjs +122 -0
  188. package/tests/helpers/array/array_unique.test.mjs +27 -0
  189. package/tests/helpers/array/array_unshift.test.mjs +31 -0
  190. package/tests/helpers/array/array_values.test.mjs +27 -0
  191. package/tests/helpers/array/array_walk.test.mjs +48 -0
  192. package/tests/helpers/array/array_walk_recursive.test.mjs +53 -0
  193. package/tests/helpers/array/count.test.mjs +27 -0
  194. package/tests/helpers/array/in_array.test.mjs +52 -0
  195. package/tests/helpers/array/natsort.test.mjs +71 -0
  196. package/tests/helpers/array/range.test.mjs +51 -0
  197. package/tests/helpers/array/shuffle.test.mjs +42 -0
  198. package/tests/helpers/array/sort.test.mjs +60 -0
  199. package/tests/helpers/is_char.test.mjs +40 -0
  200. package/tests/helpers/string/is_digit_char.test.mjs +32 -0
  201. package/tests/helpers/string/is_whitespace_char.test.mjs +32 -0
  202. package/tests/helpers/string/natcompare.test.mjs +100 -0
  203. package/tests/helpers/string/natcompare_numeric.test.mjs +110 -0
@@ -0,0 +1,81 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_diff_assoc
2
+
3
+ [Исходный код](../../../src/helpers/array/array_diff_assoc.mjs)
4
+
5
+ # array_diff_assoc
6
+
7
+ `array_diff_assoc` — Вычисляет расхождение между массивами с использованием стандартной
8
+ функции сравнения значений и ключей.
9
+
10
+ ## Сигнатура функции
11
+
12
+ ```ts
13
+ function array_diff_assoc(original_array: object, ...arrays: object[]): object;
14
+ ```
15
+
16
+ ## Описание
17
+
18
+ Функция `array_diff_assoc` используется для вычисления расхождения между массивами с использованием
19
+ стандартной функции сравнения значений и ключей. Она возвращает ассоциативный массив, содержащий
20
+ элементы из первого массива, которые отсутствуют в других массивах.
21
+
22
+ ## Параметры
23
+
24
+ - `original_array` (object): Исходный массив.
25
+ - `...arrays` (object): Массивы для сравнения.
26
+
27
+ ## Возвращаемое значение
28
+
29
+ Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в
30
+ других массивах.
31
+
32
+ ## Примеры использования
33
+
34
+ 1. Сравнение массивов:
35
+
36
+ ```js
37
+ const original_array = { a: 1, b: 2, c: 3 };
38
+ const array1 = { a: 1, b: 2 };
39
+ const result = array_diff_assoc(original_array, array1);
40
+ console.log(result); // { c: 3 }
41
+ ```
42
+
43
+ 2. Обработка пустых массивов:
44
+
45
+ ```js
46
+ const original_array = {};
47
+ const array1 = {};
48
+ const result = array_diff_assoc(original_array, array1);
49
+ console.log(result); // {}
50
+ ```
51
+
52
+ 3. Сравнение массивов с различными типами данных:
53
+
54
+ ```js
55
+ const original_array = { a: 1, b: '2', c: true };
56
+ const array1 = { a: 1, b: 2, d: false };
57
+ const result = array_diff_assoc(original_array, array1);
58
+ console.log(result); // { b: '2', c: true }
59
+ ```
60
+
61
+ 4. Сравнение нескольких массивов:
62
+
63
+ ```js
64
+ const original_array = { a: 1, b: 2, c: 3, d: 4 };
65
+ const array1 = { a: 1, b: 2 };
66
+ const array2 = { c: 3 };
67
+ const result = array_diff_assoc(original_array, array1, array2);
68
+ console.log(result); // { d: 4 }
69
+ ```
70
+
71
+ 5. Сравнение массивов с вложенными структурами:
72
+
73
+ ```js
74
+ const original_array = {
75
+ a: { id: 1, data: [1, 2] },
76
+ b: { id: 2, data: [3, 4] },
77
+ };
78
+ const array1 = { a: { id: 1, data: [1, 2] } };
79
+ const result = array_diff_assoc(original_array, array1);
80
+ console.log(result); // { b: { id: 2, data: [3, 4] } }
81
+ ```
@@ -0,0 +1,81 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_diff_key
2
+
3
+ [Исходный код](../../../src/helpers/array/array_diff_key.mjs)
4
+
5
+ # array_diff_key
6
+
7
+ `array_diff_key` — Вычисляет расхождение между массивами с использованием стандартной функции
8
+ сравнения ключей.
9
+
10
+ ## Сигнатура функции
11
+
12
+ ```ts
13
+ function array_diff_key(original_array: object, ...arrays: object[]): object;
14
+ ```
15
+
16
+ ## Описание
17
+
18
+ Функция `array_diff_key` используется для вычисления расхождения между массивами с использованием
19
+ стандартной функции сравнения ключей. Она возвращает ассоциативный массив, содержащий элементы из
20
+ первого массива, которые отсутствуют в других массивах.
21
+
22
+ ## Параметры
23
+
24
+ - `original_array` (object): Исходный массив.
25
+ - `...arrays` (object): Массивы для сравнения.
26
+
27
+ ## Возвращаемое значение
28
+
29
+ Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в
30
+ других массивах.
31
+
32
+ ## Примеры использования
33
+
34
+ 1. Сравнение массивов:
35
+
36
+ ```js
37
+ const original_array = { a: 1, b: 2, c: 3 };
38
+ const array1 = { a: 1, b: 2 };
39
+ const result = array_diff_key(original_array, array1);
40
+ console.log(result); // { c: 3 }
41
+ ```
42
+
43
+ 2. Обработка пустых массивов:
44
+
45
+ ```js
46
+ const original_array = {};
47
+ const array1 = {};
48
+ const result = array_diff_key(original_array, array1);
49
+ console.log(result); // {}
50
+ ```
51
+
52
+ 3. Сравнение массивов с различными типами данных:
53
+
54
+ ```js
55
+ const original_array = { a: 1, b: '2', c: true };
56
+ const array1 = { a: 1, b: 2, d: false };
57
+ const result = array_diff_key(original_array, array1);
58
+ console.log(result); // { c: true }
59
+ ```
60
+
61
+ 4. Сравнение нескольких массивов:
62
+
63
+ ```js
64
+ const original_array = { a: 1, b: 2, c: 3, d: 4 };
65
+ const array1 = { a: 1, b: 2 };
66
+ const array2 = { c: 3 };
67
+ const result = array_diff_key(original_array, array1, array2);
68
+ console.log(result); // { d: 4 }
69
+ ```
70
+
71
+ 5. Сравнение массивов с вложенными структурами:
72
+
73
+ ```js
74
+ const original_array = {
75
+ a: { id: 1, data: [1, 2] },
76
+ b: { id: 2, data: [3, 4] },
77
+ };
78
+ const array1 = { a: { id: 1, data: [1, 2] } };
79
+ const result = array_diff_key(original_array, array1);
80
+ console.log(result); // { b: { id: 2, data: [3, 4] } }
81
+ ```
@@ -0,0 +1,101 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_diff_uassoc
2
+
3
+ [Исходный код](../../../src/helpers/array/array_diff_uassoc.mjs)
4
+
5
+ # array_diff_uassoc
6
+
7
+ `array_diff_uassoc` — Вычисляет расхождение между массивами с использованием пользовательской
8
+ функции сравнения ключей.
9
+
10
+ ## Сигнатура функции
11
+
12
+ ```ts
13
+ function array_diff_uassoc(
14
+ key_compare_func: function,
15
+ original_array: object,
16
+ ...arrays: object[]
17
+ ): object;
18
+ ```
19
+
20
+ ## Описание
21
+
22
+ Функция `array_diff_uassoc` используется для вычисления расхождения между массивами с использованием
23
+ пользовательской функции сравнения ключей. Она возвращает ассоциативный массив, содержащий элементы
24
+ из первого массива, которые отсутствуют в других массивах.
25
+
26
+ ## Параметры
27
+
28
+ - `key_compare_func` (function): Функция для сравнения ключей.
29
+ - `original_array` (object): Исходный массив.
30
+ - `...arrays` (object): Массивы для сравнения.
31
+
32
+ ## Возвращаемое значение
33
+
34
+ Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в
35
+ других массивах.
36
+
37
+ ## Примеры использования
38
+
39
+ 1. Сравнение массивов с использованием пользовательской функции сравнения:
40
+
41
+ ```js
42
+ const key_compare_func = (a, b) => a === b;
43
+ const original_array = { a: 1, b: 2, c: 3 };
44
+ const array1 = { a: 1, b: 2 };
45
+ const result = array_diff_uassoc(key_compare_func, original_array, array1);
46
+ console.log(result); // { c: 3 }
47
+ ```
48
+
49
+ 2. Обработка пустых массивов:
50
+
51
+ ```js
52
+ const key_compare_func = (a, b) => a === b;
53
+ const original_array = {};
54
+ const array1 = {};
55
+ const result = array_diff_uassoc(key_compare_func, original_array, array1);
56
+ console.log(result); // {}
57
+ ```
58
+
59
+ 3. Обработка значений, не являющихся массивами:
60
+
61
+ ```js
62
+ try {
63
+ const result = array_diff_uassoc('not a function', 'not an array');
64
+ } catch (e) {
65
+ console.error(e.message); // Параметр "key_compare_func" должен быть функцией.
66
+ }
67
+ ```
68
+
69
+ 4. Сравнение массивов с различными типами данных:
70
+
71
+ ```js
72
+ const key_compare_func = (a, b) => a === b;
73
+ const original_array = { a: 1, b: '2', c: true };
74
+ const array1 = { a: 1, b: 2, d: false };
75
+ const result = array_diff_uassoc(key_compare_func, original_array, array1);
76
+ console.log(result); // { c: true }
77
+ ```
78
+
79
+ 5. Сравнение нескольких массивов:
80
+
81
+ ```js
82
+ const key_compare_func = (a, b) => a === b;
83
+ const original_array = { a: 1, b: 2, c: 3, d: 4 };
84
+ const array1 = { a: 1, b: 2 };
85
+ const array2 = { c: 3 };
86
+ const result = array_diff_uassoc(key_compare_func, original_array, array1, array2);
87
+ console.log(result); // { d: 4 }
88
+ ```
89
+
90
+ 6. Сравнение массивов с вложенными структурами:
91
+
92
+ ```js
93
+ const key_compare_func = (a, b) => a === b;
94
+ const original_array = {
95
+ a: { id: 1, data: [1, 2] },
96
+ b: { id: 2, data: [3, 4] },
97
+ };
98
+ const array1 = { a: { id: 1, data: [1, 2] } };
99
+ const result = array_diff_uassoc(key_compare_func, original_array, array1);
100
+ console.log(result); // { b: { id: 2, data: [3, 4] } }
101
+ ```
@@ -0,0 +1,101 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_diff_ukey
2
+
3
+ [Исходный код](../../../src/helpers/array/array_diff_ukey.mjs)
4
+
5
+ # array_diff_ukey
6
+
7
+ `array_diff_ukey` — Вычисляет расхождение между массивами с использованием пользовательской
8
+ функции сравнения для ключей.
9
+
10
+ ## Сигнатура функции
11
+
12
+ ```ts
13
+ function array_diff_ukey(
14
+ key_compare_func: function,
15
+ original_array: object,
16
+ ...arrays: object[]
17
+ ): object;
18
+ ```
19
+
20
+ ## Описание
21
+
22
+ Функция `array_diff_ukey` используется для вычисления расхождения между массивами с использованием
23
+ пользовательской функции сравнения для ключей. Она возвращает ассоциативный массив, содержащий
24
+ элементы из первого массива, которые отсутствуют в других массивах.
25
+
26
+ ## Параметры
27
+
28
+ - `key_compare_func` (function): Функция для сравнения ключей.
29
+ - `original_array` (object): Исходный массив.
30
+ - `...arrays` (object): Массивы для сравнения.
31
+
32
+ ## Возвращаемое значение
33
+
34
+ Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в
35
+ других массивах.
36
+
37
+ ## Примеры использования
38
+
39
+ 1. Сравнение массивов с использованием пользовательской функции сравнения ключей:
40
+
41
+ ```js
42
+ const key_compare_func = (a, b) => a === b;
43
+ const original_array = { a: 1, b: 2, c: 3 };
44
+ const array1 = { a: 1, b: 2 };
45
+ const result = array_diff_ukey(key_compare_func, original_array, array1);
46
+ console.log(result); // { c: 3 }
47
+ ```
48
+
49
+ 2. Обработка пустых массивов:
50
+
51
+ ```js
52
+ const key_compare_func = (a, b) => a === b;
53
+ const original_array = {};
54
+ const array1 = {};
55
+ const result = array_diff_ukey(key_compare_func, original_array, array1);
56
+ console.log(result); // {}
57
+ ```
58
+
59
+ 3. Обработка значений, не являющихся массивами:
60
+
61
+ ```js
62
+ try {
63
+ const result = array_diff_ukey('not a function', 'not an array');
64
+ } catch (e) {
65
+ console.error(e.message); // Параметр "key_compare_func" должен быть функцией.
66
+ }
67
+ ```
68
+
69
+ 4. Сравнение массивов с различными типами данных:
70
+
71
+ ```js
72
+ const key_compare_func = (a, b) => a === b;
73
+ const original_array = { a: 1, b: '2', c: true };
74
+ const array1 = { a: 1, b: 2, d: false };
75
+ const result = array_diff_ukey(key_compare_func, original_array, array1);
76
+ console.log(result); // { c: true }
77
+ ```
78
+
79
+ 5. Сравнение нескольких массивов:
80
+
81
+ ```js
82
+ const key_compare_func = (a, b) => a === b;
83
+ const original_array = { a: 1, b: 2, c: 3, d: 4 };
84
+ const array1 = { a: 1, b: 2 };
85
+ const array2 = { c: 3 };
86
+ const result = array_diff_ukey(key_compare_func, original_array, array1, array2);
87
+ console.log(result); // { d: 4 }
88
+ ```
89
+
90
+ 6. Сравнение массивов с вложенными структурами:
91
+
92
+ ```js
93
+ const key_compare_func = (a, b) => JSON.stringify(a) === JSON.stringify(b);
94
+ const original_array = {
95
+ a: { id: 1, data: [1, 2] },
96
+ b: { id: 2, data: [3, 4] },
97
+ };
98
+ const array1 = { a: { id: 1, data: [1, 2] } };
99
+ const result = array_diff_ukey(key_compare_func, original_array, array1);
100
+ console.log(result); // { b: { id: 2, data: [3, 4] } }
101
+ ```
@@ -0,0 +1,81 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_fill
2
+
3
+ [Исходный код](../../../src/helpers/array/array_fill.mjs)
4
+
5
+ # array_fill
6
+
7
+ `array_fill` — Заполняет массив значениями, начиная с указанного индекса.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_fill(arr: object, start_index: number, count: number, value: any): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_fill` используется для заполнения массива значениями, начиная с указанного индекса.
18
+ Она возвращает массив, содержащий заданное количество элементов, заполненных указанным значением.
19
+
20
+ ## Параметры
21
+
22
+ - `arr` (object): Исходный массив.
23
+ - `start_index` (number): Индекс, с которого начинается заполнение массива.
24
+ - `count` (number): Количество элементов для заполнения.
25
+ - `value` (any): Значение, которым будет заполнен массив.
26
+
27
+ ## Возвращаемое значение
28
+
29
+ Возвращает массив, содержащий заданное количество элементов, заполненных указанным значением.
30
+
31
+ ## Примеры использования
32
+
33
+ 1. Заполнение пустого массива значениями:
34
+
35
+ ```js
36
+ const result = array_fill([], 0, 3, 'a');
37
+ console.log(result); // ['a', 'a', 'a']
38
+ ```
39
+
40
+ 2. Заполнение массива значениями с указанного индекса:
41
+
42
+ ```js
43
+ const result = array_fill([], 2, 3, 'b');
44
+ console.log(result); // [undefined, undefined, 'b', 'b', 'b']
45
+ ```
46
+
47
+ 3. Заполнение существующего массива значениями:
48
+
49
+ ```js
50
+ const existingArray = [1, 2, 3];
51
+ const result = array_fill(existingArray, 1, 2, 'c');
52
+ console.log(result); // [1, 'c', 'c']
53
+ ```
54
+
55
+ 4. Обработка отрицательных значений для `count`:
56
+
57
+ ```js
58
+ try {
59
+ const result = array_fill([], 0, -1, 'd');
60
+ } catch (e) {
61
+ console.error(e.message); // Параметр "count" должен быть равен или больше нуля.
62
+ }
63
+ ```
64
+
65
+ 5. Обработка значений, не являющихся целыми числами:
66
+
67
+ ```js
68
+ try {
69
+ const result = array_fill([], 0.5, 3, 'e');
70
+ } catch (e) {
71
+ console.error(e.message); // Параметр "start_index" должен быть целым числом.
72
+ }
73
+ ```
74
+
75
+ 6. Заполнение ассоциативного массива значениями:
76
+
77
+ ```js
78
+ const assocArray = { a: 1, b: 2 };
79
+ const result = array_fill(assocArray, 2, 3, 'f');
80
+ console.log(result); // { a: 1, b: 2, 2: 'f', 3: 'f', 4: 'f' }
81
+ ```
@@ -0,0 +1,73 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_fill_keys
2
+
3
+ [Исходный код](../../../src/helpers/array/array_fill_keys.mjs)
4
+
5
+ # array_fill_keys
6
+
7
+ `array_fill_keys` — Заполняет массив значениями по указанным ключам.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_fill_keys(arr: object, keys: array, value: any): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_fill_keys` используется для заполнения массива значениями по указанным ключам. Она
18
+ возвращает массив, содержащий элементы, заполненные указанным значением по указанным ключам.
19
+
20
+ ## Параметры
21
+
22
+ - `arr` (object): Исходный массив.
23
+ - `keys` (array): Массив ключей, по которым будет происходить заполнение.
24
+ - `value` (any): Значение, которым будет заполнен массив.
25
+
26
+ ## Возвращаемое значение
27
+
28
+ Возвращает массив, содержащий элементы, заполненные указанным значением по указанным ключам.
29
+
30
+ ## Примеры использования
31
+
32
+ 1. Заполнение пустого массива значениями по ключам:
33
+
34
+ ```js
35
+ const result = array_fill_keys([], [0, 1, 2], 'a');
36
+ console.log(result); // ['a', 'a', 'a']
37
+ ```
38
+
39
+ 2. Заполнение существующего массива значениями по ключам:
40
+
41
+ ```js
42
+ const existingArray = [1, 2, 3];
43
+ const result = array_fill_keys(existingArray, [1, 2], 'b');
44
+ console.log(result); // [1, 'b', 'b']
45
+ ```
46
+
47
+ 3. Заполнение ассоциативного массива значениями по ключам:
48
+
49
+ ```js
50
+ const assocArray = { a: 1, b: 2 };
51
+ const result = array_fill_keys(assocArray, ['c', 'd'], 'c');
52
+ console.log(result); // { a: 1, b: 2, c: 'c', d: 'c' }
53
+ ```
54
+
55
+ 4. Обработка значений, не являющихся массивами:
56
+
57
+ ```js
58
+ try {
59
+ const result = array_fill_keys('not an array', [0, 1, 2], 'd');
60
+ } catch (e) {
61
+ console.error(e.message); // Параметр "arr" должен быть массивом.
62
+ }
63
+ ```
64
+
65
+ 5. Обработка значений, не являющихся списками:
66
+
67
+ ```js
68
+ try {
69
+ const result = array_fill_keys([], 'not a list', 'e');
70
+ } catch (e) {
71
+ console.error(e.message); // Параметр "keys" должен быть списком.
72
+ }
73
+ ```
@@ -0,0 +1,79 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_filter
2
+
3
+ [Исходный код](../../../src/helpers/array/array_filter.mjs)
4
+
5
+ # array_filter
6
+
7
+ `array_filter` — Фильтрует элементы массива с использованием функции обратного вызова.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_filter(value: object, callback: function | null = null): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_filter` используется для фильтрации элементов массива с использованием функции
18
+ обратного вызова. Она возвращает новый массив, содержащий только те элементы, для которых функция
19
+ обратного вызова вернула `true`. Если функция обратного вызова не предоставлена, используется
20
+ функция по умолчанию, которая удаляет пустые значения.
21
+
22
+ ## Параметры
23
+
24
+ - `value` (object): Исходный массив.
25
+ - `callback` (function | null): Функция обратного вызова для фильтрации элементов. Если не указана,
26
+ используется функция по умолчанию, которая удаляет пустые значения.
27
+
28
+ ## Возвращаемое значение
29
+
30
+ Возвращает новый массив, содержащий только те элементы, для которых функция обратного вызова вернула
31
+ `true`.
32
+
33
+ ## Примеры использования
34
+
35
+ 1. Фильтрация массива с использованием функции обратного вызова:
36
+
37
+ ```js
38
+ const array = [1, 2, 3, 4, 5];
39
+ const callback = (value) => value > 2;
40
+ const result = array_filter(array, callback);
41
+ console.log(result); // [3, 4, 5]
42
+ ```
43
+
44
+ 2. Фильтрация массива без функции обратного вызова (удаление пустых значений):
45
+
46
+ ```js
47
+ const array = [0, 1, false, 2, '', 3];
48
+ const result = array_filter(array);
49
+ console.log(result); // [1, 2, 3]
50
+ ```
51
+
52
+ 3. Фильтрация ассоциативного массива с использованием функции обратного вызова:
53
+
54
+ ```js
55
+ const array = { a: 1, b: 2, c: 3, d: 4 };
56
+ const callback = (value, key) => value > 2;
57
+ const result = array_filter(array, callback);
58
+ console.log(result); // { c: 3, d: 4 }
59
+ ```
60
+
61
+ 4. Обработка значений, не являющихся массивами:
62
+
63
+ ```js
64
+ try {
65
+ const result = array_filter('not an array');
66
+ } catch (e) {
67
+ console.error(e.message); // Параметр "value" должен быть массивом.
68
+ }
69
+ ```
70
+
71
+ 5. Обработка значений, не являющихся функциями:
72
+
73
+ ```js
74
+ try {
75
+ const result = array_filter([1, 2, 3], 'not a function');
76
+ } catch (e) {
77
+ console.error(e.message); // Параметр "callback" должен быть функцией.
78
+ }
79
+ ```
@@ -0,0 +1,70 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_flip
2
+
3
+ [Исходный код](../../../src/helpers/array/array_flip.mjs)
4
+
5
+ # array_flip
6
+
7
+ `array_flip` — Меняет местами ключи и значения в массиве.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_flip(value: object): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_flip` используется для обмена местами ключей и значений в массиве. Она возвращает
18
+ новый массив, в котором ключи и значения поменяны местами.
19
+
20
+ ## Параметры
21
+
22
+ - `value` (object): Исходный массив.
23
+
24
+ ## Возвращаемое значение
25
+
26
+ Возвращает новый массив, в котором ключи и значения поменяны местами.
27
+
28
+ ## Примеры использования
29
+
30
+ 1. Обмен ключей и значений в обычном массиве:
31
+
32
+ ```js
33
+ const array = { a: 1, b: 2, c: 3 };
34
+ const result = array_flip(array);
35
+ console.log(result); // { 1: 'a', 2: 'b', 3: 'c' }
36
+ ```
37
+
38
+ 2. Обработка пустого массива:
39
+
40
+ ```js
41
+ const array = {};
42
+ const result = array_flip(array);
43
+ console.log(result); // {}
44
+ ```
45
+
46
+ 3. Обработка значений, не являющихся массивами:
47
+
48
+ ```js
49
+ try {
50
+ const result = array_flip('not an array');
51
+ } catch (e) {
52
+ console.error(e.message); // Параметр "value" должен быть массивом.
53
+ }
54
+ ```
55
+
56
+ 4. Обработка массива с повторяющимися значениями:
57
+
58
+ ```js
59
+ const array = { a: 1, b: 1, c: 2 };
60
+ const result = array_flip(array);
61
+ console.log(result); // { 1: 'b', 2: 'c' }
62
+ ```
63
+
64
+ 5. Обработка массива с различными типами данных:
65
+
66
+ ```js
67
+ const array = { a: 1, b: '2', c: true };
68
+ const result = array_flip(array);
69
+ console.log(result); // { 1: 'a', 2: 'b', true: 'c' }
70
+ ```