@rogolev/value 0.0.3 → 0.0.5

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 (355) hide show
  1. package/CHANGELOG.md +319 -1
  2. package/docs/classes/Expect/toBe.md +61 -0
  3. package/docs/classes/Expect/toBeArray.md +52 -0
  4. package/docs/classes/Expect/toBeAssoc.md +53 -0
  5. package/docs/classes/Expect/toBeBigInt.md +52 -0
  6. package/docs/classes/Expect/toBeBool.md +53 -0
  7. package/docs/classes/Expect/toBeBoolean.md +53 -0
  8. package/docs/classes/Expect/toBeChar.md +53 -0
  9. package/docs/classes/Expect/toBeClass.md +53 -0
  10. package/docs/classes/Expect/toBeFloat.md +53 -0
  11. package/docs/classes/Expect/toBeFunction.md +52 -0
  12. package/docs/classes/Expect/toBeInfinity.md +53 -0
  13. package/docs/classes/Expect/toBeInt.md +53 -0
  14. package/docs/classes/Expect/toBeInteger.md +53 -0
  15. package/docs/classes/Expect/toBeList.md +53 -0
  16. package/docs/classes/Expect/toBeNaN.md +53 -0
  17. package/docs/classes/Expect/toBeNull.md +51 -0
  18. package/docs/classes/Expect/toBeNumber.md +52 -0
  19. package/docs/classes/Expect/toBeNumeric.md +53 -0
  20. package/docs/classes/Expect/toBeObject.md +52 -0
  21. package/docs/classes/Expect/toBeScalar.md +53 -0
  22. package/docs/classes/Expect/toBeString.md +52 -0
  23. package/docs/classes/Expect/toBeSymbol.md +53 -0
  24. package/docs/classes/Expect/toBeUndefined.md +54 -0
  25. package/docs/classes/Expect/toEqual.md +69 -0
  26. package/docs/classes/Expect/toStrictEqual.md +70 -0
  27. package/docs/classes/Expect.md +87 -0
  28. package/docs/classes/Type/expectArray.md +63 -0
  29. package/docs/classes/Type/expectAssoc.md +65 -0
  30. package/docs/classes/Type/expectBigInt.md +63 -0
  31. package/docs/classes/Type/expectBool.md +65 -0
  32. package/docs/classes/Type/expectBoolean.md +65 -0
  33. package/docs/classes/Type/expectChar.md +63 -0
  34. package/docs/classes/Type/expectClass.md +63 -0
  35. package/docs/classes/Type/expectFloat.md +68 -0
  36. package/docs/classes/Type/expectFunction.md +63 -0
  37. package/docs/classes/Type/expectInfinity.md +65 -0
  38. package/docs/classes/Type/expectInt.md +64 -0
  39. package/docs/classes/Type/expectInteger.md +64 -0
  40. package/docs/classes/Type/expectList.md +63 -0
  41. package/docs/classes/Type/expectNaN.md +63 -0
  42. package/docs/classes/Type/expectNull.md +63 -0
  43. package/docs/classes/Type/expectNumber.md +63 -0
  44. package/docs/classes/Type/expectNumeric.md +63 -0
  45. package/docs/classes/Type/expectObject.md +64 -0
  46. package/docs/classes/Type/expectScalar.md +63 -0
  47. package/docs/classes/Type/expectString.md +63 -0
  48. package/docs/classes/Type/expectSymbol.md +63 -0
  49. package/docs/classes/Type/expectUndefined.md +63 -0
  50. package/docs/classes/Type.md +101 -2
  51. package/docs/classes.md +2 -1
  52. package/docs/helpers/array/array_chunk.md +80 -0
  53. package/docs/helpers/array/array_chunk_with_keys.md +81 -0
  54. package/docs/helpers/array/array_column.md +110 -0
  55. package/docs/helpers/array/array_combine.md +77 -0
  56. package/docs/helpers/array/array_count_values.md +71 -0
  57. package/docs/helpers/array/array_diff.md +97 -0
  58. package/docs/helpers/array/array_diff_assoc.md +81 -0
  59. package/docs/helpers/array/array_diff_key.md +81 -0
  60. package/docs/helpers/array/array_diff_uassoc.md +101 -0
  61. package/docs/helpers/array/array_diff_ukey.md +101 -0
  62. package/docs/helpers/array/array_fill.md +81 -0
  63. package/docs/helpers/array/array_fill_keys.md +73 -0
  64. package/docs/helpers/array/array_filter.md +79 -0
  65. package/docs/helpers/array/array_flip.md +70 -0
  66. package/docs/helpers/array/array_index_max.md +78 -0
  67. package/docs/helpers/array/array_index_min.md +78 -0
  68. package/docs/helpers/array/array_intersect.md +91 -0
  69. package/docs/helpers/array/array_intersect_assoc.md +91 -0
  70. package/docs/helpers/array/array_intersect_key.md +91 -0
  71. package/docs/helpers/array/array_intersect_uassoc.md +101 -0
  72. package/docs/helpers/array/array_intersect_ukey.md +101 -0
  73. package/docs/helpers/array/array_key_exists.md +73 -0
  74. package/docs/helpers/array/array_key_first.md +62 -0
  75. package/docs/helpers/array/array_key_last.md +62 -0
  76. package/docs/helpers/array/array_key_to_lower_case.md +57 -0
  77. package/docs/helpers/array/array_key_to_upper_case.md +57 -0
  78. package/docs/helpers/array/array_keys.md +62 -0
  79. package/docs/helpers/array/array_map.md +69 -0
  80. package/docs/helpers/array/array_merge.md +67 -0
  81. package/docs/helpers/array/array_merge_recursive.md +86 -0
  82. package/docs/helpers/array/array_pad.md +83 -0
  83. package/docs/helpers/array/array_pop.md +64 -0
  84. package/docs/helpers/array/array_product.md +62 -0
  85. package/docs/helpers/array/array_push.md +57 -0
  86. package/docs/helpers/array/array_rand.md +99 -0
  87. package/docs/helpers/array/array_reduce.md +77 -0
  88. package/docs/helpers/array/array_replace.md +85 -0
  89. package/docs/helpers/array/array_replace_recursive.md +87 -0
  90. package/docs/helpers/array/array_reverse.md +55 -0
  91. package/docs/helpers/array/array_search.md +74 -0
  92. package/docs/helpers/array/array_shift.md +64 -0
  93. package/docs/helpers/array/array_slice.md +65 -0
  94. package/docs/helpers/array/array_splice.md +103 -0
  95. package/docs/helpers/array/array_sum.md +55 -0
  96. package/docs/helpers/array/array_udiff.md +97 -0
  97. package/docs/helpers/array/array_udiff_assoc.md +101 -0
  98. package/docs/helpers/array/array_udiff_uassoc.md +88 -0
  99. package/docs/helpers/array/array_uintersect.md +101 -0
  100. package/docs/helpers/array/array_uintersect_assoc.md +102 -0
  101. package/docs/helpers/array/array_uintersect_uassoc.md +135 -0
  102. package/docs/helpers/array/array_unique.md +54 -0
  103. package/docs/helpers/array/array_unshift.md +58 -0
  104. package/docs/helpers/array/array_values.md +54 -0
  105. package/docs/helpers/array/array_walk.md +87 -0
  106. package/docs/helpers/array/array_walk_recursive.md +93 -0
  107. package/docs/helpers/array/count.md +54 -0
  108. package/docs/helpers/array/in_array.md +65 -0
  109. package/docs/helpers/array/natsort.md +60 -0
  110. package/docs/helpers/array/range.md +76 -0
  111. package/docs/helpers/array/shuffle.md +74 -0
  112. package/docs/helpers/array/sort.md +79 -0
  113. package/docs/helpers/expect.md +58 -0
  114. package/docs/helpers/expect_array.md +63 -0
  115. package/docs/helpers/expect_assoc.md +65 -0
  116. package/docs/helpers/expect_bigint.md +63 -0
  117. package/docs/helpers/expect_bool.md +65 -0
  118. package/docs/helpers/expect_boolean.md +65 -0
  119. package/docs/helpers/expect_char.md +63 -0
  120. package/docs/helpers/expect_class.md +63 -0
  121. package/docs/helpers/expect_float.md +65 -0
  122. package/docs/helpers/expect_function.md +63 -0
  123. package/docs/helpers/expect_infinity.md +65 -0
  124. package/docs/helpers/expect_int.md +65 -0
  125. package/docs/helpers/expect_integer.md +65 -0
  126. package/docs/helpers/expect_list.md +63 -0
  127. package/docs/helpers/expect_nan.md +63 -0
  128. package/docs/helpers/expect_null.md +63 -0
  129. package/docs/helpers/expect_number.md +63 -0
  130. package/docs/helpers/expect_numeric.md +63 -0
  131. package/docs/helpers/expect_object.md +64 -0
  132. package/docs/helpers/expect_scalar.md +63 -0
  133. package/docs/helpers/expect_string.md +63 -0
  134. package/docs/helpers/expect_symbol.md +63 -0
  135. package/docs/helpers/expect_undefined.md +64 -0
  136. package/docs/helpers/is_char.md +84 -0
  137. package/docs/helpers/is_equal.md +75 -0
  138. package/docs/helpers/string/is_digit_char.md +70 -0
  139. package/docs/helpers/string/is_whitespace_char.md +70 -0
  140. package/docs/helpers/string/natcompare.md +69 -0
  141. package/docs/helpers/string/natcompare_numeric.md +70 -0
  142. package/docs/helpers.md +172 -1
  143. package/index.mjs +91 -1
  144. package/package.json +1 -1
  145. package/prettier.config.mjs +2 -1
  146. package/src/classes/Expect.mjs +1445 -0
  147. package/src/classes/Type.mjs +2739 -1284
  148. package/src/constants.mjs +83 -14
  149. package/src/helpers/array/array_chunk.mjs +102 -0
  150. package/src/helpers/array/array_chunk_with_keys.mjs +102 -0
  151. package/src/helpers/array/array_column.mjs +131 -0
  152. package/src/helpers/array/array_combine.mjs +26 -0
  153. package/src/helpers/array/array_count_values.mjs +82 -0
  154. package/src/helpers/array/array_diff.mjs +77 -0
  155. package/src/helpers/array/array_diff_assoc.mjs +56 -0
  156. package/src/helpers/array/array_diff_key.mjs +56 -0
  157. package/src/helpers/array/array_diff_uassoc.mjs +76 -0
  158. package/src/helpers/array/array_diff_ukey.mjs +71 -0
  159. package/src/helpers/array/array_fill.mjs +108 -0
  160. package/src/helpers/array/array_fill_keys.mjs +90 -0
  161. package/src/helpers/array/array_filter.mjs +105 -0
  162. package/src/helpers/array/array_flip.mjs +58 -0
  163. package/src/helpers/array/array_index_max.mjs +82 -0
  164. package/src/helpers/array/array_index_min.mjs +82 -0
  165. package/src/helpers/array/array_intersect.mjs +71 -0
  166. package/src/helpers/array/array_intersect_assoc.mjs +67 -0
  167. package/src/helpers/array/array_intersect_key.mjs +67 -0
  168. package/src/helpers/array/array_intersect_uassoc.mjs +77 -0
  169. package/src/helpers/array/array_intersect_ukey.mjs +72 -0
  170. package/src/helpers/array/array_key_exists.mjs +83 -0
  171. package/src/helpers/array/array_key_first.mjs +73 -0
  172. package/src/helpers/array/array_key_last.mjs +74 -0
  173. package/src/helpers/array/array_key_to_lower_case.mjs +71 -0
  174. package/src/helpers/array/array_key_to_upper_case.mjs +71 -0
  175. package/src/helpers/array/array_keys.mjs +65 -0
  176. package/src/helpers/array/array_map.mjs +84 -0
  177. package/src/helpers/array/array_merge.mjs +95 -0
  178. package/src/helpers/array/array_merge_recursive.mjs +153 -0
  179. package/src/helpers/array/array_pad.mjs +105 -0
  180. package/src/helpers/array/array_pop.mjs +82 -0
  181. package/src/helpers/array/array_product.mjs +67 -0
  182. package/src/helpers/array/array_push.mjs +75 -0
  183. package/src/helpers/array/array_rand.mjs +129 -0
  184. package/src/helpers/array/array_reduce.mjs +90 -0
  185. package/src/helpers/array/array_replace.mjs +25 -0
  186. package/src/helpers/array/array_replace_recursive.mjs +109 -0
  187. package/src/helpers/array/array_reverse.mjs +62 -0
  188. package/src/helpers/array/array_search.mjs +104 -0
  189. package/src/helpers/array/array_shift.mjs +78 -0
  190. package/src/helpers/array/array_slice.mjs +99 -0
  191. package/src/helpers/array/array_splice.mjs +218 -0
  192. package/src/helpers/array/array_sum.mjs +60 -0
  193. package/src/helpers/array/array_udiff.mjs +91 -0
  194. package/src/helpers/array/array_udiff_assoc.mjs +71 -0
  195. package/src/helpers/array/array_udiff_uassoc.mjs +124 -0
  196. package/src/helpers/array/array_uintersect.mjs +72 -0
  197. package/src/helpers/array/array_uintersect_assoc.mjs +77 -0
  198. package/src/helpers/array/array_uintersect_uassoc.mjs +121 -0
  199. package/src/helpers/array/array_unique.mjs +77 -0
  200. package/src/helpers/array/array_unshift.mjs +64 -0
  201. package/src/helpers/array/array_values.mjs +57 -0
  202. package/src/helpers/array/array_walk.mjs +95 -0
  203. package/src/helpers/array/array_walk_recursive.mjs +104 -0
  204. package/src/helpers/array/count.mjs +57 -0
  205. package/src/helpers/array/in_array.mjs +67 -0
  206. package/src/helpers/array/natsort.mjs +62 -0
  207. package/src/helpers/array/range.mjs +121 -0
  208. package/src/helpers/array/shuffle.mjs +73 -0
  209. package/src/helpers/array/sort.mjs +69 -0
  210. package/src/helpers/expect.mjs +44 -0
  211. package/src/helpers/expect_array.mjs +66 -0
  212. package/src/helpers/expect_assoc.mjs +66 -0
  213. package/src/helpers/expect_bigint.mjs +66 -0
  214. package/src/helpers/expect_bool.mjs +66 -0
  215. package/src/helpers/expect_boolean.mjs +57 -0
  216. package/src/helpers/expect_char.mjs +66 -0
  217. package/src/helpers/expect_class.mjs +66 -0
  218. package/src/helpers/expect_float.mjs +66 -0
  219. package/src/helpers/expect_function.mjs +66 -0
  220. package/src/helpers/expect_infinity.mjs +66 -0
  221. package/src/helpers/expect_int.mjs +66 -0
  222. package/src/helpers/expect_integer.mjs +57 -0
  223. package/src/helpers/expect_list.mjs +66 -0
  224. package/src/helpers/expect_nan.mjs +66 -0
  225. package/src/helpers/expect_null.mjs +66 -0
  226. package/src/helpers/expect_number.mjs +66 -0
  227. package/src/helpers/expect_numeric.mjs +66 -0
  228. package/src/helpers/expect_object.mjs +67 -0
  229. package/src/helpers/expect_scalar.mjs +66 -0
  230. package/src/helpers/expect_string.mjs +65 -0
  231. package/src/helpers/expect_symbol.mjs +66 -0
  232. package/src/helpers/expect_undefined.mjs +66 -0
  233. package/src/helpers/is_char.mjs +54 -0
  234. package/src/helpers/is_equal.mjs +94 -0
  235. package/src/helpers/string/is_digit_char.mjs +60 -0
  236. package/src/helpers/string/is_whitespace_char.mjs +54 -0
  237. package/src/helpers/string/natcompare.mjs +107 -0
  238. package/src/helpers/string/natcompare_numeric.mjs +131 -0
  239. package/tests/classes/Expect/toBe.test.mjs +60 -0
  240. package/tests/classes/Expect/toBeArray.test.mjs +46 -0
  241. package/tests/classes/Expect/toBeAssoc.test.mjs +48 -0
  242. package/tests/classes/Expect/toBeBigInt.test.mjs +46 -0
  243. package/tests/classes/Expect/toBeBool.test.mjs +48 -0
  244. package/tests/classes/Expect/toBeBoolean.test.mjs +48 -0
  245. package/tests/classes/Expect/toBeChar.test.mjs +46 -0
  246. package/tests/classes/Expect/toBeClass.test.mjs +48 -0
  247. package/tests/classes/Expect/toBeFloat.test.mjs +48 -0
  248. package/tests/classes/Expect/toBeFunction.test.mjs +51 -0
  249. package/tests/classes/Expect/toBeInfinity.test.mjs +48 -0
  250. package/tests/classes/Expect/toBeInt.test.mjs +48 -0
  251. package/tests/classes/Expect/toBeInteger.test.mjs +48 -0
  252. package/tests/classes/Expect/toBeList.test.mjs +46 -0
  253. package/tests/classes/Expect/toBeNaN.test.mjs +46 -0
  254. package/tests/classes/Expect/toBeNull.test.mjs +46 -0
  255. package/tests/classes/Expect/toBeNumber.test.mjs +46 -0
  256. package/tests/classes/Expect/toBeNumeric.test.mjs +53 -0
  257. package/tests/classes/Expect/toBeObject.test.mjs +47 -0
  258. package/tests/classes/Expect/toBeScalar.test.mjs +63 -0
  259. package/tests/classes/Expect/toBeString.test.mjs +46 -0
  260. package/tests/classes/Expect/toBeSymbol.test.mjs +46 -0
  261. package/tests/classes/Expect/toBeUndefined.test.mjs +50 -0
  262. package/tests/classes/Expect/toEqual.test.mjs +66 -0
  263. package/tests/classes/Expect/toStrictEqual.test.mjs +73 -0
  264. package/tests/classes/Type.test.mjs +1320 -1262
  265. package/tests/helpers/array/array_chunk.test.mjs +49 -0
  266. package/tests/helpers/array/array_chunk_with_keys.test.mjs +45 -0
  267. package/tests/helpers/array/array_column.test.mjs +87 -0
  268. package/tests/helpers/array/array_combine.test.mjs +41 -0
  269. package/tests/helpers/array/array_count_values.test.mjs +40 -0
  270. package/tests/helpers/array/array_diff.test.mjs +78 -0
  271. package/tests/helpers/array/array_diff_assoc.test.mjs +64 -0
  272. package/tests/helpers/array/array_diff_key.test.mjs +64 -0
  273. package/tests/helpers/array/array_diff_uassoc.test.mjs +73 -0
  274. package/tests/helpers/array/array_diff_ukey.test.mjs +77 -0
  275. package/tests/helpers/array/array_fill.test.mjs +47 -0
  276. package/tests/helpers/array/array_fill_keys.test.mjs +35 -0
  277. package/tests/helpers/array/array_filter.test.mjs +38 -0
  278. package/tests/helpers/array/array_flip.test.mjs +33 -0
  279. package/tests/helpers/array/array_index_max.test.mjs +41 -0
  280. package/tests/helpers/array/array_index_min.test.mjs +41 -0
  281. package/tests/helpers/array/array_intersect.test.mjs +65 -0
  282. package/tests/helpers/array/array_intersect_assoc.test.mjs +65 -0
  283. package/tests/helpers/array/array_intersect_key.test.mjs +65 -0
  284. package/tests/helpers/array/array_intersect_uassoc.test.mjs +76 -0
  285. package/tests/helpers/array/array_intersect_ukey.test.mjs +74 -0
  286. package/tests/helpers/array/array_key_exists.test.mjs +36 -0
  287. package/tests/helpers/array/array_key_first.test.mjs +29 -0
  288. package/tests/helpers/array/array_key_last.test.mjs +29 -0
  289. package/tests/helpers/array/array_key_to_lower_case.test.mjs +23 -0
  290. package/tests/helpers/array/array_key_to_upper_case.test.mjs +23 -0
  291. package/tests/helpers/array/array_keys.test.mjs +27 -0
  292. package/tests/helpers/array/array_map.test.mjs +32 -0
  293. package/tests/helpers/array/array_merge.test.mjs +37 -0
  294. package/tests/helpers/array/array_merge_recursive.test.mjs +65 -0
  295. package/tests/helpers/array/array_pad.test.mjs +48 -0
  296. package/tests/helpers/array/array_pop.test.mjs +29 -0
  297. package/tests/helpers/array/array_product.test.mjs +33 -0
  298. package/tests/helpers/array/array_push.test.mjs +31 -0
  299. package/tests/helpers/array/array_rand.test.mjs +59 -0
  300. package/tests/helpers/array/array_reduce.test.mjs +44 -0
  301. package/tests/helpers/array/array_replace.test.mjs +46 -0
  302. package/tests/helpers/array/array_replace_recursive.test.mjs +46 -0
  303. package/tests/helpers/array/array_reverse.test.mjs +31 -0
  304. package/tests/helpers/array/array_search.test.mjs +48 -0
  305. package/tests/helpers/array/array_shift.test.mjs +29 -0
  306. package/tests/helpers/array/array_slice.test.mjs +49 -0
  307. package/tests/helpers/array/array_splice.test.mjs +67 -0
  308. package/tests/helpers/array/array_sum.test.mjs +27 -0
  309. package/tests/helpers/array/array_udiff.test.mjs +95 -0
  310. package/tests/helpers/array/array_udiff_assoc.test.mjs +77 -0
  311. package/tests/helpers/array/array_udiff_uassoc.test.mjs +89 -0
  312. package/tests/helpers/array/array_uintersect.test.mjs +78 -0
  313. package/tests/helpers/array/array_uintersect_assoc.test.mjs +80 -0
  314. package/tests/helpers/array/array_uintersect_uassoc.test.mjs +122 -0
  315. package/tests/helpers/array/array_unique.test.mjs +27 -0
  316. package/tests/helpers/array/array_unshift.test.mjs +31 -0
  317. package/tests/helpers/array/array_values.test.mjs +27 -0
  318. package/tests/helpers/array/array_walk.test.mjs +48 -0
  319. package/tests/helpers/array/array_walk_recursive.test.mjs +53 -0
  320. package/tests/helpers/array/count.test.mjs +27 -0
  321. package/tests/helpers/array/in_array.test.mjs +52 -0
  322. package/tests/helpers/array/natsort.test.mjs +71 -0
  323. package/tests/helpers/array/range.test.mjs +51 -0
  324. package/tests/helpers/array/shuffle.test.mjs +42 -0
  325. package/tests/helpers/array/sort.test.mjs +60 -0
  326. package/tests/helpers/array.test.mjs +58 -58
  327. package/tests/helpers/expect.test.mjs +95 -0
  328. package/tests/helpers/expect_array.test.mjs +71 -0
  329. package/tests/helpers/expect_assoc.test.mjs +61 -0
  330. package/tests/helpers/expect_bigint.test.mjs +63 -0
  331. package/tests/helpers/expect_bool.test.mjs +59 -0
  332. package/tests/helpers/expect_boolean.test.mjs +61 -0
  333. package/tests/helpers/expect_char.test.mjs +63 -0
  334. package/tests/helpers/expect_class.test.mjs +64 -0
  335. package/tests/helpers/expect_float.test.mjs +64 -0
  336. package/tests/helpers/expect_function.test.mjs +65 -0
  337. package/tests/helpers/expect_infinity.test.mjs +62 -0
  338. package/tests/helpers/expect_int.test.mjs +57 -0
  339. package/tests/helpers/expect_integer.test.mjs +59 -0
  340. package/tests/helpers/expect_list.test.mjs +73 -0
  341. package/tests/helpers/expect_nan.test.mjs +57 -0
  342. package/tests/helpers/expect_null.test.mjs +57 -0
  343. package/tests/helpers/expect_number.test.mjs +57 -0
  344. package/tests/helpers/expect_numeric.test.mjs +57 -0
  345. package/tests/helpers/expect_object.test.mjs +63 -0
  346. package/tests/helpers/expect_scalar.test.mjs +72 -0
  347. package/tests/helpers/expect_string.test.mjs +65 -0
  348. package/tests/helpers/expect_symbol.test.mjs +66 -0
  349. package/tests/helpers/expect_undefined.test.mjs +59 -0
  350. package/tests/helpers/is_char.test.mjs +40 -0
  351. package/tests/helpers/is_equal.test.mjs +110 -0
  352. package/tests/helpers/string/is_digit_char.test.mjs +32 -0
  353. package/tests/helpers/string/is_whitespace_char.test.mjs +32 -0
  354. package/tests/helpers/string/natcompare.test.mjs +100 -0
  355. package/tests/helpers/string/natcompare_numeric.test.mjs +110 -0
@@ -1,6 +1,6 @@
1
1
  [Главная](../../README.md) / [Классы](../classes.md) / Type
2
2
 
3
- [Исходный код](../../src/classes/Type.mjs)
3
+ [Исходный код](../../src/classes/mjs)
4
4
 
5
5
  # Type
6
6
 
@@ -10,6 +10,45 @@
10
10
 
11
11
  ```ts
12
12
  class Type {
13
+ /** Константы */
14
+ static readonly NULL: string;
15
+ static readonly NAN: string;
16
+ static readonly UNDEFINED: string;
17
+ static readonly INFINITY: string;
18
+ static readonly BOOLEAN: string;
19
+ static readonly INTEGER: string;
20
+ static readonly BIGINT: string;
21
+ static readonly FLOAT: string;
22
+ static readonly STRING: string;
23
+ static readonly SYMBOL: string;
24
+ static readonly CLASS: string;
25
+ static readonly FUNCTION: string;
26
+ static readonly ARRAY: string;
27
+ static readonly OBJECT: string;
28
+
29
+ /** Методы */
30
+ static expectArray(value: any, message?: string): boolean;
31
+ static expectAssoc(value: any, message?: string): boolean;
32
+ static expectBigInt(value: any, message?: string): boolean;
33
+ static expectBool(value: any, message?: string): boolean;
34
+ static expectBoolean(value: any, message?: string): boolean;
35
+ static expectChar(value: any, message?: string): boolean;
36
+ static expectClass(value: any, message?: string): boolean;
37
+ static expectFloat(value: any, message?: string): boolean;
38
+ static expectFunction(value: any, message?: string): boolean;
39
+ static expectInfinity(value: any, message?: string): boolean;
40
+ static expectInt(value: any, message?: string): boolean;
41
+ static expectInteger(value: any, message?: string): boolean;
42
+ static expectList(value: any, message?: string): boolean;
43
+ static expectNaN(value: any, message?: string): boolean;
44
+ static expectNull(value: any, message?: string): boolean;
45
+ static expectNumber(value: any, message?: string): boolean;
46
+ static expectNumeric(value: any, message?: string): boolean;
47
+ static expectObject(value: any, message?: string): boolean;
48
+ static expectScalar(value: any, message?: string): boolean;
49
+ static expectString(value: any, message?: string): boolean;
50
+ static expectSymbol(value: any, message?: string): boolean;
51
+ static expectUndefined(value: any, message?: string): boolean;
13
52
  static isEmpty(value: any): boolean;
14
53
  static isArray(value: any): boolean;
15
54
  static isAssoc(value: any): boolean;
@@ -41,8 +80,69 @@ class Type {
41
80
  значений. Эти методы охватывают широкий спектр типов данных, включая примитивы, объекты, массивы,
42
81
  функции и специальные значения.
43
82
 
83
+ ### Константы
84
+
85
+ - `NULL` — Константа, представляющая значение `null`.
86
+ - `NAN` — Константа, представляющая значение `NaN` (Not-a-Number).
87
+ - `UNDEFINED` — Константа, представляющая значение `undefined`.
88
+ - `INFINITY` — Константа, представляющая значение `Infinity`.
89
+ - `BOOLEAN` — Константа, представляющая тип `boolean`.
90
+ - `INTEGER` — Константа, представляющая тип `integer` (целое число).
91
+ - `BIGINT` — Константа, представляющая тип `bigint` (большое целое число).
92
+ - `FLOAT` — Константа, представляющая тип `float` (число с плавающей запятой).
93
+ - `STRING` — Константа, представляющая тип `string`.
94
+ - `SYMBOL` — Константа, представляющая тип `symbol`.
95
+ - `CLASS` — Константа, представляющая тип `class`.
96
+ - `FUNCTION` — Константа, представляющая тип `function`.
97
+ - `ARRAY` — Константа, представляющая тип `array`.
98
+ - `OBJECT` — Константа, представляющая тип `object`.
99
+
44
100
  ### Методы
45
101
 
102
+ - [expectArray](./Type/expectArray.md) — Проверяет, является ли значение массивом, и
103
+ выбрасывает ошибку с указанным сообщением, если это не так.
104
+ - [expectAssoc](./Type/expectAssoc.md) — Проверяет, является ли значение ассоциативным
105
+ массивом, и выбрасывает ошибку с указанным сообщением, если это не так.
106
+ - [expectBigInt](./Type/expectBigInt.md) — Проверяет, является ли значение BigInt, и
107
+ выбрасывает ошибку с указанным сообщением, если это не так.
108
+ - [expectBool](./Type/expectBool.md) — Проверяет, является ли значение логическим типом, и
109
+ выбрасывает ошибку с указанным сообщением, если это не так.
110
+ - [expectBoolean](./Type/expectBoolean.md) — Проверяет, является ли значение логическим типом,
111
+ и выбрасывает ошибку с указанным сообщением, если это не так.
112
+ - [expectChar](./Type/expectChar.md) — Проверяет, является ли значение символом, и выбрасывает
113
+ ошибку с указанным сообщением, если это не так.
114
+ - [expectClass](./Type/expectClass.md) — Проверяет, является ли значение классом, и
115
+ выбрасывает ошибку с указанным сообщением, если это не так.
116
+ - [expectFloat](./Type/expectFloat.md) — Проверяет, является ли значение числом с плавающей
117
+ запятой, и выбрасывает ошибку с указанным сообщением, если это не так.
118
+ - [expectFunction](./Type/expectFunction.md) — Проверяет, является ли значение функцией, и
119
+ выбрасывает ошибку с указанным сообщением, если это не так.
120
+ - [expectInfinity](./Type/expectInfinity.md) — Проверяет, является ли значение бесконечностью,
121
+ и выбрасывает ошибку с указанным сообщением, если это не так.
122
+ - [expectInt](./Type/expectInt.md) — Проверяет, является ли значение целым числом, и
123
+ выбрасывает ошибку с указанным сообщением, если это не так.
124
+ - [expectInteger](./Type/expectInteger.md) — Проверяет, является ли значение целым числом, и
125
+ выбрасывает ошибку с указанным сообщением, если это не так.
126
+ - [expectList](./Type/expectList.md) — Проверяет, является ли значение списком, и выбрасывает
127
+ ошибку с указанным сообщением, если это не так.
128
+ - [expectNaN](./Type/expectNaN.md) — Проверяет, является ли значение NaN, и выбрасывает ошибку
129
+ с указанным сообщением, если это не так.
130
+ - [expectNull](./Type/expectNull.md) — Проверяет, является ли значение null, и выбрасывает
131
+ ошибку с указанным сообщением, если это не так.
132
+ - [expectNumber](./Type/expectNumber.md) — Проверяет, является ли значение числом, и
133
+ выбрасывает ошибку с указанным сообщением, если это не так.
134
+ - [expectNumeric](./Type/expectNumeric.md) — Проверяет, является ли значение числовым, и
135
+ выбрасывает ошибку с указанным сообщением, если это не так.
136
+ - [expectObject](./Type/expectObject.md) — Проверяет, является ли значение объектом, и
137
+ выбрасывает ошибку с указанным сообщением, если это не так.
138
+ - [expectScalar](./Type/expectScalar.md) — Проверяет, является ли значение скалярным, и
139
+ выбрасывает ошибку с указанным сообщением, если это не так.
140
+ - [expectString](./Type/expectString.md) — Проверяет, является ли значение строкой, и
141
+ выбрасывает ошибку с указанным сообщением, если это не так.
142
+ - [expectSymbol](./Type/expectSymbol.md) — Проверяет, является ли значение символом, и
143
+ выбрасывает ошибку с указанным сообщением, если это не так.
144
+ - [expectUndefined](./Type/expectUndefined.md) — Проверяет, является ли значение undefined, и
145
+ выбрасывает ошибку с указанным сообщением, если это не так.
46
146
  - [isEmpty](./Type/isEmpty.md) — Проверяет, является ли переменная пустой.
47
147
  - [isArray](./Type/isArray.md) — Проверяет, является ли переданное значение массивом или
48
148
  ассоциативным массивом.
@@ -71,4 +171,3 @@ class Type {
71
171
  - [isString](./Type/isString.md) — Проверяет, является ли значение строкой.
72
172
  - [isSymbol](./Type/isSymbol.md) — Проверяет, является ли значение символом.
73
173
  - [isUndefined](./Type/isUndefined.md) — Проверяет, является ли значение `undefined`.
74
-
package/docs/classes.md CHANGED
@@ -4,8 +4,9 @@
4
4
 
5
5
  - [Convert](./classes/Convert.md) — Класс, предоставляющий методы для преобразования различных
6
6
  типов данных в JavaScript.
7
+ - [Expect](./classes/Expect.md) — Класс, предоставляющий методы для проверки значений в
8
+ JavaScript.
7
9
  - [Type](./classes/Type.md) — Класс, предоставляющий методы для проверки типов данных в
8
10
  JavaScript.
9
11
  - [Value](./classes/Value.md) — Класс, представляющий обертку для значений различных типов и
10
12
  предоставляющий методы для работы с ними.
11
-
@@ -0,0 +1,80 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_chunk
2
+
3
+ [Исходный код](../../../src/helpers/array/array_chunk.mjs)
4
+
5
+ # array_chunk
6
+
7
+ `array_chunk` — Разбивает массив на части указанной длины.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_chunk(value: array, length: number): array;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_chunk` используется для разбивки массива на части указанной длины. Если переданное
18
+ значение не является массивом, функция выбрасывает ошибку типа `TypeError`. Если длина не является
19
+ целым числом или меньше 1, функция выбрасывает соответствующую ошибку.
20
+
21
+ ## Параметры
22
+
23
+ - `value` (array): Массив, который необходимо разбить на части.
24
+ - `length` (number): Длина каждой части.
25
+
26
+ ## Возвращаемое значение
27
+
28
+ Возвращает новый массив, содержащий части исходного массива.
29
+
30
+ ## Примеры использования
31
+
32
+ 1. Разбивка массива на части указанной длины:
33
+
34
+ ```js
35
+ const array = [1, 2, 3, 4, 5];
36
+ const result = array_chunk(array, 2);
37
+ console.log(result); // [[1, 2], [3, 4], [5]]
38
+ ```
39
+
40
+ 2. Обработка пустого массива:
41
+
42
+ ```js
43
+ const array = [];
44
+ const result = array_chunk(array, 2);
45
+ console.log(result); // []
46
+ ```
47
+
48
+ 3. Обработка ассоциативного массива:
49
+
50
+ ```js
51
+ const assoc = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4' };
52
+ const result = array_chunk(assoc, 2);
53
+ console.log(result); // [['value1', 'value2'], ['value3', 'value4']]
54
+ ```
55
+
56
+ 4. Обработка значения, не являющегося массивом:
57
+
58
+ ```js
59
+ try {
60
+ const result = array_chunk('not an array', 2);
61
+ } catch (e) {
62
+ console.error(e.message); // Параметр "value" должен быть массивом.
63
+ }
64
+ ```
65
+
66
+ 5. Обработка некорректной длины:
67
+
68
+ ```js
69
+ try {
70
+ const result = array_chunk([1, 2, 3], 'not an integer');
71
+ } catch (e) {
72
+ console.error(e.message); // Параметр "length" должен быть целым числом.
73
+ }
74
+
75
+ try {
76
+ const result = array_chunk([1, 2, 3], 0);
77
+ } catch (e) {
78
+ console.error(e.message); // Параметр "length" должен быть больше нуля.
79
+ }
80
+ ```
@@ -0,0 +1,81 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_chunk_with_keys
2
+
3
+ [Исходный код](../../../src/helpers/array/array_chunk_with_keys.mjs)
4
+
5
+ # array_chunk_with_keys
6
+
7
+ `array_chunk_with_keys` — Разбивает массив на части указанной длины с сохранением ключей.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_chunk_with_keys(value: array, length: number): array;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_chunk_with_keys` используется для разбивки массива на части указанной длины с
18
+ сохранением ключей. Если переданное значение не является массивом, функция выбрасывает ошибку типа
19
+ `TypeError`. Если длина не является целым числом или меньше 1, функция выбрасывает соответствующую
20
+ ошибку.
21
+
22
+ ## Параметры
23
+
24
+ - `value` (array): Массив, который необходимо разбить на части.
25
+ - `length` (number): Длина каждой части.
26
+
27
+ ## Возвращаемое значение
28
+
29
+ Возвращает новый массив, содержащий части исходного массива с сохранением ключей.
30
+
31
+ ## Примеры использования
32
+
33
+ 1. Разбивка ассоциативного массива на части указанной длины с сохранением ключей:
34
+
35
+ ```js
36
+ const assoc = { a: 1, b: 2, c: 3, d: 4, e: 5 };
37
+ const result = array_chunk_with_keys(assoc, 2);
38
+ console.log(result); // [{ a: 1, b: 2 }, { c: 3, d: 4 }, { e: 5 }]
39
+ ```
40
+
41
+ 2. Обработка пустого ассоциативного массива:
42
+
43
+ ```js
44
+ const assoc = {};
45
+ const result = array_chunk_with_keys(assoc, 2);
46
+ console.log(result); // []
47
+ ```
48
+
49
+ 3. Разбивка обычного массива на части указанной длины с сохранением ключей:
50
+
51
+ ```js
52
+ const array = [1, 2, 3, 4, 5];
53
+ const result = array_chunk_with_keys(array, 2);
54
+ console.log(result); // [{ 0: 1, 1: 2 }, { 2: 3, 3: 4 }, { 4: 5 }]
55
+ ```
56
+
57
+ 4. Обработка значения, не являющегося массивом:
58
+
59
+ ```js
60
+ try {
61
+ const result = array_chunk_with_keys('not an array', 2);
62
+ } catch (e) {
63
+ console.error(e.message); // Параметр "value" должен быть массивом.
64
+ }
65
+ ```
66
+
67
+ 5. Обработка некорректной длины:
68
+
69
+ ```js
70
+ try {
71
+ const result = array_chunk_with_keys([1, 2, 3], 'not an integer');
72
+ } catch (e) {
73
+ console.error(e.message); // Параметр "length" должен быть целым числом.
74
+ }
75
+
76
+ try {
77
+ const result = array_chunk_with_keys([1, 2, 3], 0);
78
+ } catch (e) {
79
+ console.error(e.message); // Параметр "length" должен быть больше нуля.
80
+ }
81
+ ```
@@ -0,0 +1,110 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_column
2
+
3
+ [Исходный код](../../../src/helpers/array/array_column.mjs)
4
+
5
+ # array_column
6
+
7
+ `array_column` — Извлекает значения указанного столбца из массива объектов.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_column(
13
+ value: array,
14
+ column_key: string | number,
15
+ index_key?: string | number | null,
16
+ ): array | object;
17
+ ```
18
+
19
+ ## Описание
20
+
21
+ Функция `array_column` используется для извлечения значений указанного столбца из массива объектов.
22
+ Если переданное значение не является списком, функция выбрасывает ошибку типа `TypeError`. Если ключ
23
+ столбца или индексный ключ не являются строкой или целым числом, функция выбрасывает соответствующую
24
+ ошибку.
25
+
26
+ ## Параметры
27
+
28
+ - `value` (array): Массив объектов, из которого необходимо извлечь значения.
29
+ - `column_key` (string | number): Ключ столбца, значения которого необходимо извлечь.
30
+ - `index_key` (string | number | null): Ключ, который будет использоваться для индексации
31
+ возвращаемого массива (по умолчанию `null`).
32
+
33
+ ## Возвращаемое значение
34
+
35
+ Возвращает массив значений указанного столбца. Если указан индексный ключ, возвращает объект с
36
+ индексированными значениями.
37
+
38
+ ## Примеры использования
39
+
40
+ 1. Извлечение значений указанного столбца из массива объектов:
41
+
42
+ ```js
43
+ const array = [
44
+ { id: 1, name: 'Alice' },
45
+ { id: 2, name: 'Bob' },
46
+ { id: 3, name: 'Charlie' },
47
+ ];
48
+ const result = array_column(array, 'name');
49
+ console.log(result); // ['Alice', 'Bob', 'Charlie']
50
+ ```
51
+
52
+ 2. Извлечение значений указанного столбца с использованием индексного ключа:
53
+
54
+ ```js
55
+ const array = [
56
+ { id: 1, name: 'Alice' },
57
+ { id: 2, name: 'Bob' },
58
+ { id: 3, name: 'Charlie' },
59
+ ];
60
+ const result = array_column(array, 'name', 'id');
61
+ console.log(result); // { 1: 'Alice', 2: 'Bob', 3: 'Charlie' }
62
+ ```
63
+
64
+ 3. Обработка пустого массива:
65
+
66
+ ```js
67
+ const array = [];
68
+ const result = array_column(array, 'name');
69
+ console.log(result); // []
70
+ ```
71
+
72
+ 4. Обработка значения, не являющегося массивом:
73
+
74
+ ```js
75
+ try {
76
+ const result = array_column('not an array', 'name');
77
+ } catch (e) {
78
+ console.error(e.message); // Параметр "value" должен быть списком.
79
+ }
80
+ ```
81
+
82
+ 5. Обработка некорректного ключа столбца:
83
+
84
+ ```js
85
+ const array = [
86
+ { id: 1, name: 'Alice' },
87
+ { id: 2, name: 'Bob' },
88
+ { id: 3, name: 'Charlie' },
89
+ ];
90
+ try {
91
+ const result = array_column(array, {});
92
+ } catch (e) {
93
+ console.error(e.message); // Параметр "column_key" должен быть строкой или целым числом.
94
+ }
95
+ ```
96
+
97
+ 6. Обработка некорректного индексного ключа:
98
+
99
+ ```js
100
+ const array = [
101
+ { id: 1, name: 'Alice' },
102
+ { id: 2, name: 'Bob' },
103
+ { id: 3, name: 'Charlie' },
104
+ ];
105
+ try {
106
+ const result = array_column(array, 'name', {});
107
+ } catch (e) {
108
+ console.error(e.message); // Параметр "index_key" должен быть строкой или целым числом.
109
+ }
110
+ ```
@@ -0,0 +1,77 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_combine
2
+
3
+ [Исходный код](../../../src/helpers/array/array_combine.mjs)
4
+
5
+ # array_combine
6
+
7
+ `array_combine` — Объединяет два массива в ассоциативный массив.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_combine(keys: array, values: array): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_combine` используется для объединения двух массивов в ассоциативный массив. Если
18
+ переданное значение для ключей или значений не является списком, функция выбрасывает ошибку типа
19
+ `TypeError`. Если количество ключей и значений не совпадает, функция выбрасывает ошибку.
20
+
21
+ ## Параметры
22
+
23
+ - `keys` (array): Массив ключей.
24
+ - `values` (array): Массив значений.
25
+
26
+ ## Возвращаемое значение
27
+
28
+ Возвращает ассоциативный массив, где ключи из первого массива соответствуют значениям из второго
29
+ массива.
30
+
31
+ ## Примеры использования
32
+
33
+ 1. Объединение двух массивов в ассоциативный массив:
34
+
35
+ ```js
36
+ const keys = ['a', 'b', 'c'];
37
+ const values = [1, 2, 3];
38
+ const result = array_combine(keys, values);
39
+ console.log(result); // { a: 1, b: 2, c: 3 }
40
+ ```
41
+
42
+ 2. Обработка пустых массивов:
43
+
44
+ ```js
45
+ const keys = [];
46
+ const values = [];
47
+ const result = array_combine(keys, values);
48
+ console.log(result); // {}
49
+ ```
50
+
51
+ 3. Обработка значения, не являющегося массивом:
52
+
53
+ ```js
54
+ try {
55
+ const result = array_combine('not an array', [1, 2, 3]);
56
+ } catch (e) {
57
+ console.error(e.message); // Параметр "keys" должен быть списком.
58
+ }
59
+
60
+ try {
61
+ const result = array_combine(['a', 'b', 'c'], 'not an array');
62
+ } catch (e) {
63
+ console.error(e.message); // Параметр "values" должен быть списком.
64
+ }
65
+ ```
66
+
67
+ 4. Обработка некорректного количества ключей и значений:
68
+
69
+ ```js
70
+ const keys = ['a', 'b'];
71
+ const values = [1, 2, 3];
72
+ try {
73
+ const result = array_combine(keys, values);
74
+ } catch (e) {
75
+ console.error(e.message); // Количество элементов в списке ключей должно ровняться количеству элементов в списке значений.
76
+ }
77
+ ```
@@ -0,0 +1,71 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_count_values
2
+
3
+ [Исходный код](../../../src/helpers/array/array_count_values.mjs)
4
+
5
+ # array_count_values
6
+
7
+ `array_count_values` — Подсчитывает количество значений в массиве.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_count_values(value: object): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_count_values` используется для подсчета количества значений в массиве. Если
18
+ переданное значение не является массивом, функция выбрасывает ошибку типа `TypeError`.
19
+
20
+ ## Параметры
21
+
22
+ - `value` (array): Массив значений, которые необходимо подсчитать.
23
+
24
+ ## Возвращаемое значение
25
+
26
+ Возвращает объект, где ключи представляют уникальные значения из массива, а значения представляют
27
+ количество их вхождений.
28
+
29
+ ## Примеры использования
30
+
31
+ 1. Подсчет количества значений в массиве:
32
+
33
+ ```js
34
+ const array = ['a', 'b', 'a', 'c', 'b', 'a'];
35
+ const result = array_count_values(array);
36
+ console.log(result); // { a: 3, b: 2, c: 1 }
37
+ ```
38
+
39
+ 2. Обработка пустого массива:
40
+
41
+ ```js
42
+ const array = [];
43
+ const result = array_count_values(array);
44
+ console.log(result); // {}
45
+ ```
46
+
47
+ 3. Обработка значений разных типов:
48
+
49
+ ```js
50
+ const array = [1, '1', true, 'true', null, 'null', undefined, 'undefined'];
51
+ const result = array_count_values(array);
52
+ console.log(result); // { 1: 2, true: 2, null: 2, undefined: 2 }
53
+ ```
54
+
55
+ 4. Обработка значения, не являющегося массивом:
56
+
57
+ ```js
58
+ try {
59
+ const result = array_count_values('not an array');
60
+ } catch (e) {
61
+ console.error(e.message); // Параметр "value" должен быть массивом.
62
+ }
63
+ ```
64
+
65
+ 5. Обработка ассоциативных массивов:
66
+
67
+ ```js
68
+ const assoc = { key1: 'a', key2: 'b', key3: 'a', key4: 'c' };
69
+ const result = array_count_values(assoc);
70
+ console.log(result); // { a: 2, b: 1, c: 1 }
71
+ ```
@@ -0,0 +1,97 @@
1
+ [Главная](../../../README.md) / [Помощники](../../helpers.md) / array_diff
2
+
3
+ [Исходный код](../../../src/helpers/array/array_diff.mjs)
4
+
5
+ # array_diff
6
+
7
+ `array_diff` — Вычисляет расхождение между массивами.
8
+
9
+ ## Сигнатура функции
10
+
11
+ ```ts
12
+ function array_diff(original_array: object, ...arrays: object[]): object;
13
+ ```
14
+
15
+ ## Описание
16
+
17
+ Функция `array_diff` используется для вычисления расхождения между массивами. Она возвращает
18
+ ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
19
+
20
+ ## Параметры
21
+
22
+ - `original_array` (object): Исходный массив.
23
+ - `...arrays` (object): Массивы для сравнения.
24
+
25
+ ## Возвращаемое значение
26
+
27
+ Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в
28
+ других массивах.
29
+
30
+ ## Примеры использования
31
+
32
+ 1. Сравнение массивов:
33
+
34
+ ```js
35
+ const original_array = [1, 2, 3];
36
+ const array1 = [1, 2];
37
+ const result = array_diff(original_array, array1);
38
+ console.log(result); // { 2: 3 }
39
+ ```
40
+
41
+ 2. Обработка пустых массивов:
42
+
43
+ ```js
44
+ const original_array = [];
45
+ const array1 = [];
46
+ const result = array_diff(original_array, array1);
47
+ console.log(result); // {}
48
+ ```
49
+
50
+ 3. Сравнение массивов с различными типами данных:
51
+
52
+ ```js
53
+ const original_array = [1, '2', true];
54
+ const array1 = [1, 2, false];
55
+ const result = array_diff(original_array, array1);
56
+ console.log(result); // { 1: '2', 2: true }
57
+ ```
58
+
59
+ 4. Сравнение массивов с объектами:
60
+
61
+ ```js
62
+ const original_array = [{ id: 1 }, { id: 2 }, { id: 3 }];
63
+ const array1 = [{ id: 1 }, { id: 2 }];
64
+ const result = array_diff(original_array, array1);
65
+ console.log(result); // { 2: { id: 3 } }
66
+ ```
67
+
68
+ 5. Сравнение ассоциативных массивов:
69
+
70
+ ```js
71
+ const original_array = { a: 1, b: 2, c: 3 };
72
+ const array1 = { a: 1, b: 2 };
73
+ const result = array_diff(original_array, array1);
74
+ console.log(result); // { c: 3 }
75
+ ```
76
+
77
+ 6. Сравнение нескольких массивов:
78
+
79
+ ```js
80
+ const original_array = [1, 2, 3, 4];
81
+ const array1 = [1, 2];
82
+ const array2 = [3];
83
+ const result = array_diff(original_array, array1, array2);
84
+ console.log(result); // { 3: 4 }
85
+ ```
86
+
87
+ 7. Сравнение массивов с вложенными структурами:
88
+
89
+ ```js
90
+ const original_array = [
91
+ { id: 1, data: [1, 2] },
92
+ { id: 2, data: [3, 4] },
93
+ ];
94
+ const array1 = [{ id: 1, data: [1, 2] }];
95
+ const result = array_diff(original_array, array1);
96
+ console.log(result); // { 1: { id: 2, data: [3, 4] } }
97
+ ```