@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
@@ -0,0 +1,71 @@
1
+ import array_udiff_uassoc from './array_udiff_uassoc.mjs';
2
+
3
+ /**
4
+ * Вычисляет расхождение между массивами с использованием пользовательской функции сравнения для значений и ассоциативного сравнения ключей.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `array_udiff_assoc` используется для вычисления расхождения между массивами с использованием пользовательской функции сравнения для значений и ассоциативного сравнения ключей.
9
+ * Она возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
10
+ *
11
+ * ### Параметры
12
+ *
13
+ * - `value_compare_func` (function): Функция для сравнения значений.
14
+ * - `original_array` (object): Исходный массив.
15
+ * - `...arrays` (object): Массивы для сравнения.
16
+ *
17
+ * ### Возвращаемое значение
18
+ *
19
+ * Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
20
+ *
21
+ * ### Примеры использования
22
+ *
23
+ * 1. Сравнение массивов с использованием пользовательской функции сравнения:
24
+ *
25
+ * ```js
26
+ * const value_compare_func = (a, b) => a === b;
27
+ * const original_array = { a: 1, b: 2, c: 3 };
28
+ * const array1 = { a: 1, b: 2 };
29
+ * const result = array_udiff_assoc(value_compare_func, original_array, array1);
30
+ * console.log(result); // { c: 3 }
31
+ * ```
32
+ *
33
+ * 2. Обработка пустых массивов:
34
+ *
35
+ * ```js
36
+ * const value_compare_func = (a, b) => a === b;
37
+ * const original_array = {};
38
+ * const array1 = {};
39
+ * const result = array_udiff_assoc(value_compare_func, original_array, array1);
40
+ * console.log(result); // {}
41
+ * ```
42
+ *
43
+ * 3. Обработка значений, не являющихся массивами:
44
+ *
45
+ * ```js
46
+ * try {
47
+ * const result = array_udiff_assoc('not a function', 'not an array');
48
+ * } catch (e) {
49
+ * console.error(e.message); // Параметр "value_compare_func" должен быть функцией.
50
+ * }
51
+ * ```
52
+ *
53
+ * 4. Сравнение массивов с различными типами данных:
54
+ *
55
+ * ```js
56
+ * const value_compare_func = (a, b) => a === b;
57
+ * const original_array = { a: 1, b: '2', c: true };
58
+ * const array1 = { a: 1, b: 2, d: false };
59
+ * const result = array_udiff_assoc(value_compare_func, original_array, array1);
60
+ * console.log(result); // { b: '2', c: true }
61
+ * ```
62
+ *
63
+ * @param {function} value_compare_func Функция для сравнения значений.
64
+ * @param {object} original_array Исходный массив.
65
+ * @param {...object} arrays Массивы для сравнения.
66
+ * @returns {object} Возвращает ассоциативный массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
67
+ * @throws {TypeError} Если параметры не являются функциями или массивами.
68
+ */
69
+ export default function array_udiff_assoc(value_compare_func, original_array, ...arrays) {
70
+ return array_udiff_uassoc(value_compare_func, (a, b) => a === b, original_array, ...arrays);
71
+ }
@@ -0,0 +1,124 @@
1
+ import is_array from '../is_array.mjs';
2
+ import is_function from '../is_function.mjs';
3
+
4
+ /**
5
+ * Вычисляет расхождение между массивами с использованием пользовательских функций сравнения для значений и ключей.
6
+ *
7
+ * ### Описание
8
+ *
9
+ * Функция `array_udiff_uassoc` используется для вычисления расхождения между массивами с использованием пользовательских функций сравнения для значений и ключей.
10
+ * Она возвращает массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
11
+ *
12
+ * ### Параметры
13
+ *
14
+ * - `value_compare_func` (function): Функция для сравнения значений.
15
+ * - `key_compare_func` (function): Функция для сравнения ключей.
16
+ * - `original_array` (array): Исходный массив.
17
+ * - `...arrays` (array): Массивы для сравнения.
18
+ *
19
+ * ### Возвращаемое значение
20
+ *
21
+ * Возвращает массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
22
+ *
23
+ * ### Примеры использования
24
+ *
25
+ * 1. Сравнение массивов с использованием пользовательских функций сравнения:
26
+ *
27
+ * ```js
28
+ * const value_compare_func = (a, b) => a === b;
29
+ * const key_compare_func = (a, b) => a === b;
30
+ * const original_array = { a: 1, b: 2, c: 3 };
31
+ * const array1 = { a: 1, b: 2 };
32
+ * const array2 = { d: 4 };
33
+ * const result = array_udiff_uassoc(value_compare_func, key_compare_func, original_array, array1, array2);
34
+ * console.log(result); // { c: 3 }
35
+ * ```
36
+ *
37
+ * 2. Обработка пустых массивов:
38
+ *
39
+ * ```js
40
+ * const value_compare_func = (a, b) => a === b;
41
+ * const key_compare_func = (a, b) => a === b;
42
+ * const original_array = {};
43
+ * const array1 = {};
44
+ * const result = array_udiff_uassoc(value_compare_func, key_compare_func, original_array, array1);
45
+ * console.log(result); // {}
46
+ * ```
47
+ *
48
+ * 3. Обработка значений, не являющихся массивами:
49
+ *
50
+ * ```js
51
+ * try {
52
+ * const result = array_udiff_uassoc('not a function', 'not a function', 'not an array');
53
+ * } catch (e) {
54
+ * console.error(e.message); // Параметр "value_compare_func" должен быть функцией.
55
+ * }
56
+ * ```
57
+ *
58
+ * 4. Сравнение массивов с различными типами данных:
59
+ *
60
+ * ```js
61
+ * const value_compare_func = (a, b) => a === b;
62
+ * const key_compare_func = (a, b) => a === b;
63
+ * const original_array = { a: 1, b: '2', c: true };
64
+ * const array1 = { a: 1, b: 2, d: false };
65
+ * const result = array_udiff_uassoc(value_compare_func, key_compare_func, original_array, array1);
66
+ * console.log(result); // { b: '2', c: true }
67
+ * ```
68
+ *
69
+ * @param {function} value_compare_func Функция для сравнения значений.
70
+ * @param {function} key_compare_func Функция для сравнения ключей.
71
+ * @param {object} original_array Исходный массив.
72
+ * @param {...object} arrays Массивы для сравнения.
73
+ * @returns {object} Возвращает массив, содержащий элементы из первого массива, которые отсутствуют в других массивах.
74
+ * @throws {TypeError} Если параметры не являются функциями или массивами.
75
+ */
76
+ export default function array_udiff_uassoc(
77
+ value_compare_func,
78
+ key_compare_func,
79
+ original_array,
80
+ ...arrays
81
+ ) {
82
+ if (!is_function(value_compare_func)) {
83
+ throw new TypeError('Параметр "value_compare_func" должен быть функцией.');
84
+ }
85
+
86
+ if (!is_function(key_compare_func)) {
87
+ throw new TypeError('Параметр "key_compare_func" должен быть функцией.');
88
+ }
89
+
90
+ if (!is_array(original_array)) {
91
+ throw new TypeError('Параметр "original_array" должен быть массивом.');
92
+ }
93
+
94
+ if (!arrays.every((array) => is_array(array))) {
95
+ throw new TypeError('Параметр "arrays" должен быть массивом.');
96
+ }
97
+
98
+ const result = {};
99
+
100
+ // Перебираем исходный массив
101
+ original: for (const original_key in original_array) {
102
+ const original_value = original_array[original_key];
103
+
104
+ // Каждую пару ключ-значение из исходного массива мы сравниваем с парами из исходных массивов.
105
+ // Если совпадение найдено, переходим к следующей паре ключ-значение из исходного массива.
106
+ for (const array of arrays) {
107
+ for (const key in array) {
108
+ const value = array[key];
109
+
110
+ if (
111
+ key_compare_func(original_key, key) &&
112
+ value_compare_func(original_value, value)
113
+ ) {
114
+ continue original;
115
+ }
116
+ }
117
+ }
118
+
119
+ // Если совпадений не найдено, записываем пару ключ-значение из исходного массива в расхождение.
120
+ result[original_key] = original_value;
121
+ }
122
+
123
+ return result;
124
+ }
@@ -0,0 +1,72 @@
1
+ import array_uintersect_uassoc from './array_uintersect_uassoc.mjs';
2
+
3
+ /**
4
+ * Вычисляет пересечение между массивами с использованием пользовательской функции сравнения для значений.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `array_uintersect` используется для вычисления пересечения между массивами с использованием пользовательской функции сравнения для значений.
9
+ * Она возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
10
+ *
11
+ * ### Параметры
12
+ *
13
+ * - `value_compare_func` (function): Функция для сравнения значений.
14
+ * - `original_array` (array): Исходный массив.
15
+ * - `...arrays` (array): Массивы для сравнения.
16
+ *
17
+ * ### Возвращаемое значение
18
+ *
19
+ * Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
20
+ *
21
+ * ### Примеры использования
22
+ *
23
+ * 1. Сравнение массивов с использованием пользовательской функции сравнения:
24
+ *
25
+ * ```js
26
+ * const value_compare_func = (a, b) => a === b;
27
+ * const original_array = { a: 1, b: 2, c: 3 };
28
+ * const array1 = { a: 1, b: 2 };
29
+ * const array2 = { b: 2, c: 3 };
30
+ * const result = array_uintersect(value_compare_func, original_array, array1, array2);
31
+ * console.log(result); // { a: 1, b: 2, c: 3 }
32
+ * ```
33
+ *
34
+ * 2. Обработка пустых массивов:
35
+ *
36
+ * ```js
37
+ * const value_compare_func = (a, b) => a === b;
38
+ * const original_array = {};
39
+ * const array1 = {};
40
+ * const result = array_uintersect(value_compare_func, original_array, array1);
41
+ * console.log(result); // {}
42
+ * ```
43
+ *
44
+ * 3. Обработка значений, не являющихся массивами:
45
+ *
46
+ * ```js
47
+ * try {
48
+ * const result = array_uintersect('not a function', 'not an array');
49
+ * } catch (e) {
50
+ * console.error(e.message); // Параметр "value_compare_func" должен быть функцией.
51
+ * }
52
+ * ```
53
+ *
54
+ * 4. Сравнение массивов с различными типами данных:
55
+ *
56
+ * ```js
57
+ * const value_compare_func = (a, b) => a === b;
58
+ * const original_array = { a: 1, b: '2', c: true };
59
+ * const array1 = { a: 1, b: 2, d: false };
60
+ * const result = array_uintersect(value_compare_func, original_array, array1);
61
+ * console.log(result); // { a: 1 }
62
+ * ```
63
+ *
64
+ * @param {function} value_compare_func Функция для сравнения значений.
65
+ * @param {object} original_array Исходный массив.
66
+ * @param {...object} arrays Массивы для сравнения.
67
+ * @returns {object} Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
68
+ * @throws {TypeError} Если параметры не являются функциями или массивами.
69
+ */
70
+ export default function array_uintersect(value_compare_func, original_array, ...arrays) {
71
+ return array_uintersect_uassoc(value_compare_func, () => true, original_array, ...arrays);
72
+ }
@@ -0,0 +1,77 @@
1
+ import array_uintersect_uassoc from './array_uintersect_uassoc.mjs';
2
+
3
+ /**
4
+ * Вычисляет пересечение между массивами с использованием пользовательской функции сравнения для значений и стандартной функции сравнения для ключей.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `array_uintersect_assoc` используется для вычисления пересечения между массивами с использованием пользовательской функции сравнения для значений и стандартной функции сравнения для ключей.
9
+ * Она возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
10
+ *
11
+ * ### Параметры
12
+ *
13
+ * - `value_compare_func` (function): Функция для сравнения значений.
14
+ * - `original_array` (array): Исходный массив.
15
+ * - `...arrays` (array): Массивы для сравнения.
16
+ *
17
+ * ### Возвращаемое значение
18
+ *
19
+ * Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
20
+ *
21
+ * ### Примеры использования
22
+ *
23
+ * 1. Сравнение массивов с использованием пользовательской функции сравнения:
24
+ *
25
+ * ```js
26
+ * const value_compare_func = (a, b) => a === b;
27
+ * const original_array = { a: 1, b: 2, c: 3 };
28
+ * const array1 = { a: 1, b: 2 };
29
+ * const array2 = { b: 2, c: 3 };
30
+ * const result = array_uintersect_assoc(value_compare_func, original_array, array1, array2);
31
+ * console.log(result); // { a: 1, b: 2, c: 3 }
32
+ * ```
33
+ *
34
+ * 2. Обработка пустых массивов:
35
+ *
36
+ * ```js
37
+ * const value_compare_func = (a, b) => a === b;
38
+ * const original_array = {};
39
+ * const array1 = {};
40
+ * const result = array_uintersect_assoc(value_compare_func, original_array, array1);
41
+ * console.log(result); // {}
42
+ * ```
43
+ *
44
+ * 3. Обработка значений, не являющихся массивами:
45
+ *
46
+ * ```js
47
+ * try {
48
+ * const result = array_uintersect_assoc('not a function', 'not an array');
49
+ * } catch (e) {
50
+ * console.error(e.message); // Параметр "value_compare_func" должен быть функцией.
51
+ * }
52
+ * ```
53
+ *
54
+ * 4. Сравнение массивов с различными типами данных:
55
+ *
56
+ * ```js
57
+ * const value_compare_func = (a, b) => a === b;
58
+ * const original_array = { a: 1, b: '2', c: true };
59
+ * const array1 = { a: 1, b: 2, d: false };
60
+ * const result = array_uintersect_assoc(value_compare_func, original_array, array1);
61
+ * console.log(result); // { a: 1 }
62
+ * ```
63
+ *
64
+ * @param {function} value_compare_func Функция для сравнения значений.
65
+ * @param {object} original_array Исходный массив.
66
+ * @param {...object} arrays Массивы для сравнения.
67
+ * @returns {object} Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
68
+ * @throws {TypeError} Если параметры не являются функциями или массивами.
69
+ */
70
+ export default function array_uintersect_assoc(value_compare_func, original_array, ...arrays) {
71
+ return array_uintersect_uassoc(
72
+ value_compare_func,
73
+ (a, b) => a === b,
74
+ original_array,
75
+ ...arrays,
76
+ );
77
+ }
@@ -0,0 +1,121 @@
1
+ import is_array from '../is_array.mjs';
2
+ import is_function from '../is_function.mjs';
3
+
4
+ /**
5
+ * Вычисляет пересечение между массивами с использованием пользовательских функций сравнения для значений и ключей.
6
+ *
7
+ * ### Описание
8
+ *
9
+ * Функция `array_uintersect_uassoc` используется для вычисления пересечения между массивами с использованием пользовательских функций сравнения для значений и ключей.
10
+ * Она возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
11
+ *
12
+ * ### Параметры
13
+ *
14
+ * - `value_compare_func` (function): Функция для сравнения значений.
15
+ * - `key_compare_func` (function): Функция для сравнения ключей.
16
+ * - `original_array` (array): Исходный массив.
17
+ * - `...arrays` (array): Массивы для сравнения.
18
+ *
19
+ * ### Возвращаемое значение
20
+ *
21
+ * Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
22
+ *
23
+ * ### Примеры использования
24
+ *
25
+ * 1. Сравнение массивов с использованием пользовательских функций сравнения:
26
+ *
27
+ * ```js
28
+ * const value_compare_func = (a, b) => a === b;
29
+ * const key_compare_func = (a, b) => a === b;
30
+ * const original_array = { a: 1, b: 2, c: 3 };
31
+ * const array1 = { a: 1, b: 2 };
32
+ * const array2 = { b: 2, c: 3 };
33
+ * const result = array_uintersect_uassoc(value_compare_func, key_compare_func, original_array, array1, array2);
34
+ * console.log(result); // { a: 1, b: 2, c: 3 }
35
+ * ```
36
+ *
37
+ * 2. Обработка пустых массивов:
38
+ *
39
+ * ```js
40
+ * const value_compare_func = (a, b) => a === b;
41
+ * const key_compare_func = (a, b) => a === b;
42
+ * const original_array = {};
43
+ * const array1 = {};
44
+ * const result = array_uintersect_uassoc(value_compare_func, key_compare_func, original_array, array1);
45
+ * console.log(result); // {}
46
+ * ```
47
+ *
48
+ * 3. Обработка значений, не являющихся массивами:
49
+ *
50
+ * ```js
51
+ * try {
52
+ * const result = array_uintersect_uassoc('not a function', 'not a function', 'not an array');
53
+ * } catch (e) {
54
+ * console.error(e.message); // Параметр "value_compare_func" должен быть функцией.
55
+ * }
56
+ * ```
57
+ *
58
+ * 4. Сравнение массивов с различными типами данных:
59
+ *
60
+ * ```js
61
+ * const value_compare_func = (a, b) => a === b;
62
+ * const key_compare_func = (a, b) => a === b;
63
+ * const original_array = { a: 1, b: '2', c: true };
64
+ * const array1 = { a: 1, b: 2, d: false };
65
+ * const result = array_uintersect_uassoc(value_compare_func, key_compare_func, original_array, array1);
66
+ * console.log(result); // {}
67
+ * ```
68
+ *
69
+ * @param {function} value_compare_func Функция для сравнения значений.
70
+ * @param {function} key_compare_func Функция для сравнения ключей.
71
+ * @param {object} original_array Исходный массив.
72
+ * @param {...object} arrays Массивы для сравнения.
73
+ * @returns {object} Возвращает массив, содержащий элементы из первого массива, которые присутствуют в других массивах.
74
+ * @throws {TypeError} Если параметры не являются функциями или массивами.
75
+ */
76
+ export default function array_uintersect_uassoc(
77
+ value_compare_func,
78
+ key_compare_func,
79
+ original_array,
80
+ ...arrays
81
+ ) {
82
+ if (!is_function(value_compare_func)) {
83
+ throw new TypeError('Параметр "value_compare_func" должен быть функцией.');
84
+ }
85
+
86
+ if (!is_function(key_compare_func)) {
87
+ throw new TypeError('Параметр "key_compare_func" должен быть функцией.');
88
+ }
89
+
90
+ if (!is_array(original_array)) {
91
+ throw new TypeError('Параметр "original_array" должен быть массивом.');
92
+ }
93
+
94
+ if (!arrays.every((v) => is_array(v))) {
95
+ throw new TypeError('Параметр "arrays" должен быть массивом.');
96
+ }
97
+
98
+ const result = {};
99
+
100
+ // Перебираем исходный массив
101
+ for (const original_key in original_array) {
102
+ const original_value = original_array[original_key];
103
+
104
+ // Каждую пару ключ-значение из исходного массива мы сравниваем с парами из массивов для сравнения.
105
+ // Если совпадение найдено, записываем ее в результат.
106
+ for (const array of arrays) {
107
+ for (const key in array) {
108
+ const value = array[key];
109
+
110
+ if (
111
+ key_compare_func(original_key, key) &&
112
+ value_compare_func(original_value, value)
113
+ ) {
114
+ result[original_key] = original_value;
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ return result;
121
+ }
@@ -0,0 +1,77 @@
1
+ import array from '../array.mjs';
2
+ import is_array from '../is_array.mjs';
3
+ import is_list from '../is_list.mjs';
4
+
5
+ /**
6
+ * Удаляет дублирующиеся значения из массива.
7
+ *
8
+ * ### Описание
9
+ *
10
+ * Функция `array_unique` используется для удаления дублирующихся значений из массива.
11
+ * Она поддерживает как обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями).
12
+ *
13
+ * ### Параметры
14
+ *
15
+ * - `arr` (object): Исходный массив.
16
+ *
17
+ * ### Возвращаемое значение
18
+ *
19
+ * Возвращает новый массив без дублирующихся значений.
20
+ *
21
+ * ### Примеры использования
22
+ *
23
+ * 1. Удаление дублирующихся значений из обычного массива:
24
+ *
25
+ * ```js
26
+ * const array = [1, 2, 2, 3, 4, 4, 5];
27
+ * const result = array_unique(array);
28
+ * console.log(result); // [1, 2, 3, 4, 5]
29
+ * ```
30
+ *
31
+ * 2. Удаление дублирующихся значений из ассоциативного массива:
32
+ *
33
+ * ```js
34
+ * const array = { a: 1, b: 2, c: 2, d: 3, e: 4, f: 4, g: 5 };
35
+ * const result = array_unique(array);
36
+ * console.log(result); // { a: 1, b: 2, d: 3, e: 4, g: 5 }
37
+ * ```
38
+ *
39
+ * 3. Обработка значений, не являющихся массивами:
40
+ *
41
+ * ```js
42
+ * try {
43
+ * const result = array_unique('not an array');
44
+ * } catch (e) {
45
+ * console.error(e.message); // Параметр "arr" должен быть массивом.
46
+ * }
47
+ * ```
48
+ *
49
+ * @param {object} arr Исходный массив.
50
+ * @returns {object} Возвращает новый массив без дублирующихся значений.
51
+ * @throws {TypeError} Если параметр не является массивом.
52
+ */
53
+ export default function array_unique(arr) {
54
+ if (!is_array(arr)) {
55
+ throw new TypeError('Параметр "arr" должен быть массивом.');
56
+ }
57
+
58
+ if (is_list(arr)) {
59
+ return arr.reduce((carry, v) => {
60
+ if (!carry.includes(v)) {
61
+ carry.push(v);
62
+ }
63
+
64
+ return carry;
65
+ }, []);
66
+ }
67
+
68
+ const result = array({});
69
+
70
+ for (const [k, v] of Object.entries(arr)) {
71
+ if (!Object.values(result).includes(v)) {
72
+ result[k] = v;
73
+ }
74
+ }
75
+
76
+ return result;
77
+ }
@@ -0,0 +1,64 @@
1
+ import is_array from '../is_array.mjs';
2
+ import array_splice from './array_splice.mjs';
3
+
4
+ /**
5
+ * Добавляет один или несколько элементов в начало массива.
6
+ *
7
+ * ### Описание
8
+ *
9
+ * Функция `array_unshift` используется для добавления одного или нескольких элементов в начало массива.
10
+ * Она поддерживает как обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями).
11
+ *
12
+ * ### Параметры
13
+ *
14
+ * - `arr` (object): Исходный массив.
15
+ * - `...values` (any[]): Элементы для добавления в начало массива.
16
+ *
17
+ * ### Возвращаемое значение
18
+ *
19
+ * Возвращает новую длину массива после добавления элементов.
20
+ *
21
+ * ### Примеры использования
22
+ *
23
+ * 1. Добавление элементов в обычный массив:
24
+ *
25
+ * ```js
26
+ * const array = [2, 3, 4];
27
+ * const result = array_unshift(array, 0, 1);
28
+ * console.log(result); // 5
29
+ * console.log(array); // [0, 1, 2, 3, 4]
30
+ * ```
31
+ *
32
+ * 2. Добавление элементов в ассоциативный массив:
33
+ *
34
+ * ```js
35
+ * const array = { b: 2, c: 3 };
36
+ * const result = array_unshift(array, { a: 1 });
37
+ * console.log(result); // 3
38
+ * console.log(array); // { a: 1, b: 2, c: 3 }
39
+ * ```
40
+ *
41
+ * 3. Обработка значений, не являющихся массивами:
42
+ *
43
+ * ```js
44
+ * try {
45
+ * const result = array_unshift('not an array', 1);
46
+ * } catch (e) {
47
+ * console.error(e.message); // Параметр "arr" должен быть массивом.
48
+ * }
49
+ * ```
50
+ *
51
+ * @param {object} arr Исходный массив.
52
+ * @param {...any} values Элементы для добавления в начало массива.
53
+ * @returns {number} Возвращает новую длину массива после добавления элементов.
54
+ * @throws {TypeError} Если параметр не является массивом.
55
+ */
56
+ export default function array_unshift(arr, ...values) {
57
+ if (!is_array(arr)) {
58
+ throw new TypeError('Параметр "arr" должен быть массивом.');
59
+ }
60
+
61
+ array_splice(arr, 0, 0, ...values);
62
+
63
+ return Object.keys(arr).length;
64
+ }
@@ -0,0 +1,57 @@
1
+ import is_array from '../is_array.mjs';
2
+
3
+ /**
4
+ * Возвращает массив значений из переданного массива или объекта.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `array_values` используется для извлечения всех значений из переданного массива или объекта.
9
+ * Она поддерживает как обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями).
10
+ *
11
+ * ### Параметры
12
+ *
13
+ * - `arr` (object): Исходный массив или объект.
14
+ *
15
+ * ### Возвращаемое значение
16
+ *
17
+ * Возвращает массив значений из переданного массива или объекта.
18
+ *
19
+ * ### Примеры использования
20
+ *
21
+ * 1. Извлечение значений из обычного массива:
22
+ *
23
+ * ```js
24
+ * const array = [1, 2, 3];
25
+ * const result = array_values(array);
26
+ * console.log(result); // [1, 2, 3]
27
+ * ```
28
+ *
29
+ * 2. Извлечение значений из ассоциативного массива:
30
+ *
31
+ * ```js
32
+ * const array = { a: 1, b: 2, c: 3 };
33
+ * const result = array_values(array);
34
+ * console.log(result); // [1, 2, 3]
35
+ * ```
36
+ *
37
+ * 3. Обработка значений, не являющихся массивами:
38
+ *
39
+ * ```js
40
+ * try {
41
+ * const result = array_values('not an array');
42
+ * } catch (e) {
43
+ * console.error(e.message); // Параметр "arr" должен быть массивом.
44
+ * }
45
+ * ```
46
+ *
47
+ * @param {object} arr Исходный массив или объект.
48
+ * @returns {any[]} Возвращает массив значений из переданного массива или объекта.
49
+ * @throws {TypeError} Если параметр не является массивом или объектом.
50
+ */
51
+ export default function array_values(arr) {
52
+ if (!is_array(arr)) {
53
+ throw new TypeError('Параметр "arr" должен быть массивом.');
54
+ }
55
+
56
+ return Object.values(arr);
57
+ }