@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.
- package/CHANGELOG.md +142 -1
- package/docs/helpers/array/array_chunk.md +80 -0
- package/docs/helpers/array/array_chunk_with_keys.md +81 -0
- package/docs/helpers/array/array_column.md +110 -0
- package/docs/helpers/array/array_combine.md +77 -0
- package/docs/helpers/array/array_count_values.md +71 -0
- package/docs/helpers/array/array_diff.md +97 -0
- package/docs/helpers/array/array_diff_assoc.md +81 -0
- package/docs/helpers/array/array_diff_key.md +81 -0
- package/docs/helpers/array/array_diff_uassoc.md +101 -0
- package/docs/helpers/array/array_diff_ukey.md +101 -0
- package/docs/helpers/array/array_fill.md +81 -0
- package/docs/helpers/array/array_fill_keys.md +73 -0
- package/docs/helpers/array/array_filter.md +79 -0
- package/docs/helpers/array/array_flip.md +70 -0
- package/docs/helpers/array/array_index_max.md +78 -0
- package/docs/helpers/array/array_index_min.md +78 -0
- package/docs/helpers/array/array_intersect.md +91 -0
- package/docs/helpers/array/array_intersect_assoc.md +91 -0
- package/docs/helpers/array/array_intersect_key.md +91 -0
- package/docs/helpers/array/array_intersect_uassoc.md +101 -0
- package/docs/helpers/array/array_intersect_ukey.md +101 -0
- package/docs/helpers/array/array_key_exists.md +73 -0
- package/docs/helpers/array/array_key_first.md +62 -0
- package/docs/helpers/array/array_key_last.md +62 -0
- package/docs/helpers/array/array_key_to_lower_case.md +57 -0
- package/docs/helpers/array/array_key_to_upper_case.md +57 -0
- package/docs/helpers/array/array_keys.md +62 -0
- package/docs/helpers/array/array_map.md +69 -0
- package/docs/helpers/array/array_merge.md +67 -0
- package/docs/helpers/array/array_merge_recursive.md +86 -0
- package/docs/helpers/array/array_pad.md +83 -0
- package/docs/helpers/array/array_pop.md +64 -0
- package/docs/helpers/array/array_product.md +62 -0
- package/docs/helpers/array/array_push.md +57 -0
- package/docs/helpers/array/array_rand.md +99 -0
- package/docs/helpers/array/array_reduce.md +77 -0
- package/docs/helpers/array/array_replace.md +85 -0
- package/docs/helpers/array/array_replace_recursive.md +87 -0
- package/docs/helpers/array/array_reverse.md +55 -0
- package/docs/helpers/array/array_search.md +74 -0
- package/docs/helpers/array/array_shift.md +64 -0
- package/docs/helpers/array/array_slice.md +65 -0
- package/docs/helpers/array/array_splice.md +103 -0
- package/docs/helpers/array/array_sum.md +55 -0
- package/docs/helpers/array/array_udiff.md +97 -0
- package/docs/helpers/array/array_udiff_assoc.md +101 -0
- package/docs/helpers/array/array_udiff_uassoc.md +88 -0
- package/docs/helpers/array/array_uintersect.md +101 -0
- package/docs/helpers/array/array_uintersect_assoc.md +102 -0
- package/docs/helpers/array/array_uintersect_uassoc.md +135 -0
- package/docs/helpers/array/array_unique.md +54 -0
- package/docs/helpers/array/array_unshift.md +58 -0
- package/docs/helpers/array/array_values.md +54 -0
- package/docs/helpers/array/array_walk.md +87 -0
- package/docs/helpers/array/array_walk_recursive.md +93 -0
- package/docs/helpers/array/count.md +54 -0
- package/docs/helpers/array/in_array.md +65 -0
- package/docs/helpers/array/natsort.md +60 -0
- package/docs/helpers/array/range.md +76 -0
- package/docs/helpers/array/shuffle.md +74 -0
- package/docs/helpers/array/sort.md +79 -0
- package/docs/helpers/is_char.md +84 -0
- package/docs/helpers/string/is_digit_char.md +70 -0
- package/docs/helpers/string/is_whitespace_char.md +70 -0
- package/docs/helpers/string/natcompare.md +69 -0
- package/docs/helpers/string/natcompare_numeric.md +70 -0
- package/docs/helpers.md +125 -1
- package/index.mjs +66 -1
- package/package.json +2 -1
- package/prettier.config.mjs +2 -1
- package/src/helpers/array/array_chunk.mjs +102 -0
- package/src/helpers/array/array_chunk_with_keys.mjs +102 -0
- package/src/helpers/array/array_column.mjs +131 -0
- package/src/helpers/array/array_combine.mjs +26 -0
- package/src/helpers/array/array_count_values.mjs +82 -0
- package/src/helpers/array/array_diff.mjs +77 -0
- package/src/helpers/array/array_diff_assoc.mjs +56 -0
- package/src/helpers/array/array_diff_key.mjs +56 -0
- package/src/helpers/array/array_diff_uassoc.mjs +76 -0
- package/src/helpers/array/array_diff_ukey.mjs +71 -0
- package/src/helpers/array/array_fill.mjs +108 -0
- package/src/helpers/array/array_fill_keys.mjs +90 -0
- package/src/helpers/array/array_filter.mjs +105 -0
- package/src/helpers/array/array_flip.mjs +58 -0
- package/src/helpers/array/array_index_max.mjs +82 -0
- package/src/helpers/array/array_index_min.mjs +82 -0
- package/src/helpers/array/array_intersect.mjs +71 -0
- package/src/helpers/array/array_intersect_assoc.mjs +67 -0
- package/src/helpers/array/array_intersect_key.mjs +67 -0
- package/src/helpers/array/array_intersect_uassoc.mjs +77 -0
- package/src/helpers/array/array_intersect_ukey.mjs +72 -0
- package/src/helpers/array/array_key_exists.mjs +83 -0
- package/src/helpers/array/array_key_first.mjs +73 -0
- package/src/helpers/array/array_key_last.mjs +74 -0
- package/src/helpers/array/array_key_to_lower_case.mjs +71 -0
- package/src/helpers/array/array_key_to_upper_case.mjs +71 -0
- package/src/helpers/array/array_keys.mjs +65 -0
- package/src/helpers/array/array_map.mjs +84 -0
- package/src/helpers/array/array_merge.mjs +95 -0
- package/src/helpers/array/array_merge_recursive.mjs +153 -0
- package/src/helpers/array/array_pad.mjs +105 -0
- package/src/helpers/array/array_pop.mjs +82 -0
- package/src/helpers/array/array_product.mjs +67 -0
- package/src/helpers/array/array_push.mjs +75 -0
- package/src/helpers/array/array_rand.mjs +129 -0
- package/src/helpers/array/array_reduce.mjs +90 -0
- package/src/helpers/array/array_replace.mjs +25 -0
- package/src/helpers/array/array_replace_recursive.mjs +109 -0
- package/src/helpers/array/array_reverse.mjs +62 -0
- package/src/helpers/array/array_search.mjs +104 -0
- package/src/helpers/array/array_shift.mjs +78 -0
- package/src/helpers/array/array_slice.mjs +99 -0
- package/src/helpers/array/array_splice.mjs +218 -0
- package/src/helpers/array/array_sum.mjs +60 -0
- package/src/helpers/array/array_udiff.mjs +91 -0
- package/src/helpers/array/array_udiff_assoc.mjs +71 -0
- package/src/helpers/array/array_udiff_uassoc.mjs +124 -0
- package/src/helpers/array/array_uintersect.mjs +72 -0
- package/src/helpers/array/array_uintersect_assoc.mjs +77 -0
- package/src/helpers/array/array_uintersect_uassoc.mjs +121 -0
- package/src/helpers/array/array_unique.mjs +77 -0
- package/src/helpers/array/array_unshift.mjs +64 -0
- package/src/helpers/array/array_values.mjs +57 -0
- package/src/helpers/array/array_walk.mjs +95 -0
- package/src/helpers/array/array_walk_recursive.mjs +104 -0
- package/src/helpers/array/count.mjs +57 -0
- package/src/helpers/array/in_array.mjs +67 -0
- package/src/helpers/array/natsort.mjs +62 -0
- package/src/helpers/array/range.mjs +121 -0
- package/src/helpers/array/shuffle.mjs +73 -0
- package/src/helpers/array/sort.mjs +69 -0
- package/src/helpers/is_char.mjs +54 -0
- package/src/helpers/string/is_digit_char.mjs +60 -0
- package/src/helpers/string/is_whitespace_char.mjs +54 -0
- package/src/helpers/string/natcompare.mjs +107 -0
- package/src/helpers/string/natcompare_numeric.mjs +131 -0
- package/tests/helpers/array/array_chunk.test.mjs +49 -0
- package/tests/helpers/array/array_chunk_with_keys.test.mjs +45 -0
- package/tests/helpers/array/array_column.test.mjs +87 -0
- package/tests/helpers/array/array_combine.test.mjs +41 -0
- package/tests/helpers/array/array_count_values.test.mjs +40 -0
- package/tests/helpers/array/array_diff.test.mjs +78 -0
- package/tests/helpers/array/array_diff_assoc.test.mjs +64 -0
- package/tests/helpers/array/array_diff_key.test.mjs +64 -0
- package/tests/helpers/array/array_diff_uassoc.test.mjs +73 -0
- package/tests/helpers/array/array_diff_ukey.test.mjs +77 -0
- package/tests/helpers/array/array_fill.test.mjs +47 -0
- package/tests/helpers/array/array_fill_keys.test.mjs +35 -0
- package/tests/helpers/array/array_filter.test.mjs +38 -0
- package/tests/helpers/array/array_flip.test.mjs +33 -0
- package/tests/helpers/array/array_index_max.test.mjs +41 -0
- package/tests/helpers/array/array_index_min.test.mjs +41 -0
- package/tests/helpers/array/array_intersect.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_assoc.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_key.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_uassoc.test.mjs +76 -0
- package/tests/helpers/array/array_intersect_ukey.test.mjs +74 -0
- package/tests/helpers/array/array_key_exists.test.mjs +36 -0
- package/tests/helpers/array/array_key_first.test.mjs +29 -0
- package/tests/helpers/array/array_key_last.test.mjs +29 -0
- package/tests/helpers/array/array_key_to_lower_case.test.mjs +23 -0
- package/tests/helpers/array/array_key_to_upper_case.test.mjs +23 -0
- package/tests/helpers/array/array_keys.test.mjs +27 -0
- package/tests/helpers/array/array_map.test.mjs +32 -0
- package/tests/helpers/array/array_merge.test.mjs +37 -0
- package/tests/helpers/array/array_merge_recursive.test.mjs +65 -0
- package/tests/helpers/array/array_pad.test.mjs +48 -0
- package/tests/helpers/array/array_pop.test.mjs +29 -0
- package/tests/helpers/array/array_product.test.mjs +33 -0
- package/tests/helpers/array/array_push.test.mjs +31 -0
- package/tests/helpers/array/array_rand.test.mjs +59 -0
- package/tests/helpers/array/array_reduce.test.mjs +44 -0
- package/tests/helpers/array/array_replace.test.mjs +46 -0
- package/tests/helpers/array/array_replace_recursive.test.mjs +46 -0
- package/tests/helpers/array/array_reverse.test.mjs +31 -0
- package/tests/helpers/array/array_search.test.mjs +48 -0
- package/tests/helpers/array/array_shift.test.mjs +29 -0
- package/tests/helpers/array/array_slice.test.mjs +49 -0
- package/tests/helpers/array/array_splice.test.mjs +67 -0
- package/tests/helpers/array/array_sum.test.mjs +27 -0
- package/tests/helpers/array/array_udiff.test.mjs +95 -0
- package/tests/helpers/array/array_udiff_assoc.test.mjs +77 -0
- package/tests/helpers/array/array_udiff_uassoc.test.mjs +89 -0
- package/tests/helpers/array/array_uintersect.test.mjs +78 -0
- package/tests/helpers/array/array_uintersect_assoc.test.mjs +80 -0
- package/tests/helpers/array/array_uintersect_uassoc.test.mjs +122 -0
- package/tests/helpers/array/array_unique.test.mjs +27 -0
- package/tests/helpers/array/array_unshift.test.mjs +31 -0
- package/tests/helpers/array/array_values.test.mjs +27 -0
- package/tests/helpers/array/array_walk.test.mjs +48 -0
- package/tests/helpers/array/array_walk_recursive.test.mjs +53 -0
- package/tests/helpers/array/count.test.mjs +27 -0
- package/tests/helpers/array/in_array.test.mjs +52 -0
- package/tests/helpers/array/natsort.test.mjs +71 -0
- package/tests/helpers/array/range.test.mjs +51 -0
- package/tests/helpers/array/shuffle.test.mjs +42 -0
- package/tests/helpers/array/sort.test.mjs +60 -0
- package/tests/helpers/is_char.test.mjs +40 -0
- package/tests/helpers/string/is_digit_char.test.mjs +32 -0
- package/tests/helpers/string/is_whitespace_char.test.mjs +32 -0
- package/tests/helpers/string/natcompare.test.mjs +100 -0
- package/tests/helpers/string/natcompare_numeric.test.mjs +110 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / in_array
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/array/in_array.mjs)
|
|
4
|
+
|
|
5
|
+
# in_array
|
|
6
|
+
|
|
7
|
+
`in_array` — Проверяет, существует ли значение в массиве.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function in_array(arr: object, value: any, strict: boolean = false): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `in_array` используется для проверки, существует ли значение в массиве. Она поддерживает как
|
|
18
|
+
обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями). Функция может
|
|
19
|
+
работать в строгом режиме, сравнивая значения с учетом типа.
|
|
20
|
+
|
|
21
|
+
## Параметры
|
|
22
|
+
|
|
23
|
+
- `arr` (object): Исходный массив.
|
|
24
|
+
- `value` (any): Значение для поиска.
|
|
25
|
+
- `strict` (boolean): Флаг строгого сравнения. По умолчанию `false`.
|
|
26
|
+
|
|
27
|
+
## Возвращаемое значение
|
|
28
|
+
|
|
29
|
+
Возвращает `true`, если значение существует в массиве, иначе `false`.
|
|
30
|
+
|
|
31
|
+
## Примеры использования
|
|
32
|
+
|
|
33
|
+
1. Проверка значения в обычном массиве:
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
const array = [1, 2, 3, 4, 5];
|
|
37
|
+
const result = in_array(array, 3);
|
|
38
|
+
console.log(result); // true
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
2. Проверка значения в ассоциативном массиве:
|
|
42
|
+
|
|
43
|
+
```js
|
|
44
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
45
|
+
const result = in_array(array, 2);
|
|
46
|
+
console.log(result); // true
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
3. Проверка значения с использованием строгого сравнения:
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
const array = [1, '2', 3];
|
|
53
|
+
const result = in_array(array, 2, true);
|
|
54
|
+
console.log(result); // false
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
4. Обработка значений, не являющихся массивами:
|
|
58
|
+
|
|
59
|
+
```js
|
|
60
|
+
try {
|
|
61
|
+
const result = in_array('not an array', 1);
|
|
62
|
+
} catch (e) {
|
|
63
|
+
console.error(e.message); // Параметр "arr" должен быть массивом.
|
|
64
|
+
}
|
|
65
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / natsort
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/array/natsort.mjs)
|
|
4
|
+
|
|
5
|
+
# natsort
|
|
6
|
+
|
|
7
|
+
`natsort` — Сортирует массив в естественном порядке.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function natsort(arr: object, getter: function = (entry) => entry[1]): array;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `natsort` используется для сортировки массива в естественном порядке. Она поддерживает как
|
|
18
|
+
обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями). Функция принимает
|
|
19
|
+
необязательный параметр `getter`, который используется для получения значения для сравнения.
|
|
20
|
+
|
|
21
|
+
## Параметры
|
|
22
|
+
|
|
23
|
+
- `arr` (object): Исходный массив.
|
|
24
|
+
- `getter` (function): Функция для получения значения для сравнения. По умолчанию
|
|
25
|
+
`(entry) => entry[1]`.
|
|
26
|
+
|
|
27
|
+
## Возвращаемое значение
|
|
28
|
+
|
|
29
|
+
Возвращает новый массив, отсортированный в естественном порядке.
|
|
30
|
+
|
|
31
|
+
## Примеры использования
|
|
32
|
+
|
|
33
|
+
1. Сортировка обычного массива:
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
const array = [10, 2, 30, 4];
|
|
37
|
+
const result = natsort(array);
|
|
38
|
+
console.log(result); // [2, 4, 10, 30]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
2. Сортировка ассоциативного массива:
|
|
42
|
+
|
|
43
|
+
```js
|
|
44
|
+
const array = { a: 10, b: 2, c: 30, d: 4 };
|
|
45
|
+
const result = natsort(array);
|
|
46
|
+
console.log(result); // [['b', 2], ['d', 4], ['a', 10], ['c', 30]]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
3. Сортировка массива с использованием функции `getter`:
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
const array = [{ value: 10 }, { value: 2 }, { value: 30 }, { value: 4 }];
|
|
53
|
+
const result = natsort(array, (entry) => entry[1].value);
|
|
54
|
+
console.log(result); // [{ value: 2 }, { value: 4 }, { value: 10 }, { value: 30 }]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Исключения
|
|
58
|
+
|
|
59
|
+
- `TypeError`: Если параметр `arr` не является массивом.
|
|
60
|
+
- `TypeError`: Если параметр `getter` не является функцией.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / range
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/array/range.mjs)
|
|
4
|
+
|
|
5
|
+
# range
|
|
6
|
+
|
|
7
|
+
`range` — Генерирует массив значений от start до end с шагом step.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function range(start: string | number, end: string | number, step: number = 1): Array<any>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `range` используется для генерации массива значений от начального значения до конечного с
|
|
18
|
+
заданным шагом. Она поддерживает как числовые значения, так и строки. Шаг не может быть равен нулю.
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `start` (string | number): Начальное значение (строка или число).
|
|
23
|
+
- `end` (string | number): Конечное значение (строка или число).
|
|
24
|
+
- `step` (number): Шаг между значениями. По умолчанию `1`.
|
|
25
|
+
|
|
26
|
+
## Возвращаемое значение
|
|
27
|
+
|
|
28
|
+
Возвращает массив значений от start до end с шагом step.
|
|
29
|
+
|
|
30
|
+
## Примеры использования
|
|
31
|
+
|
|
32
|
+
1. Генерация числового диапазона:
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
const result = range(1, 5);
|
|
36
|
+
console.log(result); // [1, 2, 3, 4, 5]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
2. Генерация диапазона с отрицательным шагом:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
const result = range(5, 1, -1);
|
|
43
|
+
console.log(result); // [5, 4, 3, 2, 1]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
3. Генерация диапазона строк:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
const result = range('a', 'e');
|
|
50
|
+
console.log(result); // ['a', 'b', 'c', 'd', 'e']
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
4. Обработка значений с преобразованием типов:
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
const result = range('1', 5);
|
|
57
|
+
console.log(result); // [1, 2, 3, 4, 5]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
5. Обработка пустых строк:
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
const result = range('', 3);
|
|
64
|
+
console.log(result); // [0, 1, 2, 3]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
6. Обработка строк и чисел:
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
const result = range('1', '5');
|
|
71
|
+
console.log(result); // [1, 2, 3, 4, 5]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Исключения
|
|
75
|
+
|
|
76
|
+
- `TypeError`: Если параметры имеют неверный тип или значение.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / shuffle
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/array/shuffle.mjs)
|
|
4
|
+
|
|
5
|
+
# shuffle
|
|
6
|
+
|
|
7
|
+
`shuffle` — Перемешивает элементы массива в случайном порядке.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function shuffle(arr: object): Array<any>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `shuffle` используется для перемешивания элементов массива в случайном порядке. Она
|
|
18
|
+
поддерживает как обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями).
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `arr` (object): Исходный массив.
|
|
23
|
+
|
|
24
|
+
## Возвращаемое значение
|
|
25
|
+
|
|
26
|
+
Возвращает новый массив с элементами в случайном порядке.
|
|
27
|
+
|
|
28
|
+
## Примеры использования
|
|
29
|
+
|
|
30
|
+
1. Перемешивание обычного массива:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
const array = [1, 2, 3, 4, 5];
|
|
34
|
+
const result = shuffle(array);
|
|
35
|
+
console.log(result); // [3, 1, 5, 2, 4] (пример)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
2. Перемешивание ассоциативного массива:
|
|
39
|
+
|
|
40
|
+
```js
|
|
41
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
42
|
+
const result = shuffle(array);
|
|
43
|
+
console.log(result); // [['b', 2], ['a', 1], ['c', 3]] (пример)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
3. Обработка пустого массива:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
const array = [];
|
|
50
|
+
const result = shuffle(array);
|
|
51
|
+
console.log(result); // []
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
4. Обработка массива с одним элементом:
|
|
55
|
+
|
|
56
|
+
```js
|
|
57
|
+
const array = [1];
|
|
58
|
+
const result = shuffle(array);
|
|
59
|
+
console.log(result); // [1]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
5. Обработка значений, не являющихся массивами:
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
try {
|
|
66
|
+
const result = shuffle('not an array');
|
|
67
|
+
} catch (e) {
|
|
68
|
+
console.error(e.message); // Параметр "arr" должен быть массивом.
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Исключения
|
|
73
|
+
|
|
74
|
+
- `TypeError`: Если параметр не является массивом.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / sort
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/array/sort.mjs)
|
|
4
|
+
|
|
5
|
+
# sort
|
|
6
|
+
|
|
7
|
+
`sort` — Сортирует элементы массива с использованием функции сравнения.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function sort(arr: object, compare_func: function = (a, b) => a[1] - b[1]): Array<any>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `sort` используется для сортировки элементов массива с использованием функции сравнения. Она
|
|
18
|
+
поддерживает как обычные массивы, так и ассоциативные массивы (объекты с ключами и значениями).
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `arr` (object): Исходный массив.
|
|
23
|
+
- `compare_func` (function): Функция сравнения, используемая для сортировки. По умолчанию
|
|
24
|
+
`(a, b) => a[1] - b[1]`.
|
|
25
|
+
|
|
26
|
+
## Возвращаемое значение
|
|
27
|
+
|
|
28
|
+
Возвращает новый массив с отсортированными элементами.
|
|
29
|
+
|
|
30
|
+
## Примеры использования
|
|
31
|
+
|
|
32
|
+
1. Сортировка обычного массива:
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
const array = [5, 3, 1, 4, 2];
|
|
36
|
+
const result = sort(array);
|
|
37
|
+
console.log(result); // [1, 2, 3, 4, 5]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
2. Сортировка ассоциативного массива:
|
|
41
|
+
|
|
42
|
+
```js
|
|
43
|
+
const array = { a: 3, b: 1, c: 2 };
|
|
44
|
+
const result = sort(array);
|
|
45
|
+
console.log(result); // [['b', 1], ['c', 2], ['a', 3]]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
3. Сортировка с использованием пользовательской функции сравнения:
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
const array = [5, 3, 1, 4, 2];
|
|
52
|
+
const result = sort(array, (a, b) => b[1] - a[1]);
|
|
53
|
+
console.log(result); // [5, 4, 3, 2, 1]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
4. Обработка значений, не являющихся массивами:
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
try {
|
|
60
|
+
const result = sort('not an array');
|
|
61
|
+
} catch (e) {
|
|
62
|
+
console.error(e.message); // Параметр "arr" должен быть массивом.
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
5. Обработка значений параметра compare_func, не являющихся функцией:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
try {
|
|
70
|
+
const result = sort([1, 2, 3], 'not a function');
|
|
71
|
+
} catch (e) {
|
|
72
|
+
console.error(e.message); // Параметр "compare_func" должен быть функцией.
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Исключения
|
|
77
|
+
|
|
78
|
+
- `TypeError`: Если параметр не является массивом или если параметр compare_func не является
|
|
79
|
+
функцией.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
[Главная](../../README.md) / [Помощники](../helpers.md) / is_char
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../src/helpers/is_char.mjs)
|
|
4
|
+
|
|
5
|
+
# is_char
|
|
6
|
+
|
|
7
|
+
`is_char` — Проверяет, является ли значение одиночным символом.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function is_char(value: string): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `is_char` используется для проверки, является ли переданное значение одиночным символом.
|
|
18
|
+
Значение считается одиночным символом, если оно является строкой длиной в один символ.
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `value` (string): Значение для проверки.
|
|
23
|
+
|
|
24
|
+
## Возвращаемое значение
|
|
25
|
+
|
|
26
|
+
Возвращает `true`, если значение является одиночным символом, иначе `false`.
|
|
27
|
+
|
|
28
|
+
## Примеры использования
|
|
29
|
+
|
|
30
|
+
1. Проверка одиночного символа:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
const result = is_char('a');
|
|
34
|
+
console.log(result); // true
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. Проверка строки из нескольких символов:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
const result = is_char('abc');
|
|
41
|
+
console.log(result); // false
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
3. Проверка пустой строки:
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
const result = is_char('');
|
|
48
|
+
console.log(result); // false
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
4. Проверка значения, не являющегося строкой:
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
const result = is_char(1);
|
|
55
|
+
console.log(result); // false
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
5. Проверка пробельного символа:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
const result = is_char(' ');
|
|
62
|
+
console.log(result); // true
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
6. Проверка строки с пробелами:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
const result = is_char(' a ');
|
|
69
|
+
console.log(result); // false
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
7. Проверка строки с числовыми значениями:
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
const result = is_char('123');
|
|
76
|
+
console.log(result); // false
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
8. Проверка одиночного числового символа:
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
const result = is_char('1');
|
|
83
|
+
console.log(result); // true
|
|
84
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / is_digit_char
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/string/is_digit_char.mjs)
|
|
4
|
+
|
|
5
|
+
# is_digit_char
|
|
6
|
+
|
|
7
|
+
`is_digit_char` — Проверяет, является ли символ цифрой.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function is_digit_char(value: any): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `is_digit_char` используется для проверки, является ли переданный символ цифрой. Цифровыми
|
|
18
|
+
символами считаются символы с кодами от 48 до 57 включительно.
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `value` (any): Символ для проверки.
|
|
23
|
+
|
|
24
|
+
## Возвращаемое значение
|
|
25
|
+
|
|
26
|
+
Возвращает `true`, если символ является цифрой, иначе `false`.
|
|
27
|
+
|
|
28
|
+
## Примеры использования
|
|
29
|
+
|
|
30
|
+
1. Проверка цифрового символа:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
const result = is_digit_char('5');
|
|
34
|
+
console.log(result); // true
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. Проверка непробельного символа:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
const result = is_digit_char('a');
|
|
41
|
+
console.log(result); // false
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
3. Проверка пустой строки:
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
const result = is_digit_char('');
|
|
48
|
+
console.log(result); // false
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
4. Проверка строки из нескольких символов:
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
const result = is_digit_char('123');
|
|
55
|
+
console.log(result); // false
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
5. Проверка символа табуляции:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
const result = is_digit_char('\t');
|
|
62
|
+
console.log(result); // false
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
6. Проверка символа новой строки:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
const result = is_digit_char('\n');
|
|
69
|
+
console.log(result); // false
|
|
70
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / is_whitespace_char
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/string/is_whitespace_char.mjs)
|
|
4
|
+
|
|
5
|
+
# is_whitespace_char
|
|
6
|
+
|
|
7
|
+
`is_whitespace_char` — Проверяет, является ли символ пробельным.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function is_whitespace_char(value: any): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `is_whitespace_char` используется для проверки, является ли переданный символ пробельным.
|
|
18
|
+
Пробельными символами считаются символы с кодами от 0 до 32 включительно.
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `value` (any): Символ для проверки.
|
|
23
|
+
|
|
24
|
+
## Возвращаемое значение
|
|
25
|
+
|
|
26
|
+
Возвращает `true`, если символ является пробельным, иначе `false`.
|
|
27
|
+
|
|
28
|
+
## Примеры использования
|
|
29
|
+
|
|
30
|
+
1. Проверка пробельного символа:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
const result = is_whitespace_char(' ');
|
|
34
|
+
console.log(result); // true
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. Проверка непробельного символа:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
const result = is_whitespace_char('a');
|
|
41
|
+
console.log(result); // false
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
3. Проверка пустой строки:
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
const result = is_whitespace_char('');
|
|
48
|
+
console.log(result); // false
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
4. Проверка строки из нескольких символов:
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
const result = is_whitespace_char('abc');
|
|
55
|
+
console.log(result); // false
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
5. Проверка символа табуляции:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
const result = is_whitespace_char('\t');
|
|
62
|
+
console.log(result); // true
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
6. Проверка символа новой строки:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
const result = is_whitespace_char('\n');
|
|
69
|
+
console.log(result); // true
|
|
70
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
[Главная](../../../README.md) / [Помощники](../../helpers.md) / natcompare
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../../src/helpers/string/natcompare.mjs)
|
|
4
|
+
|
|
5
|
+
# natcompare
|
|
6
|
+
|
|
7
|
+
`natcompare` — Сравнивает две строки в естественном порядке.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function natcompare(a: string, b: string): number;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Описание
|
|
16
|
+
|
|
17
|
+
Функция `natcompare` используется для сравнения двух строк в естественном порядке. Она поддерживает
|
|
18
|
+
строки с ведущими нулями и пробелами и игнорирует их при сравнении.
|
|
19
|
+
|
|
20
|
+
## Параметры
|
|
21
|
+
|
|
22
|
+
- `a` (string): Первая строка для сравнения.
|
|
23
|
+
- `b` (string): Вторая строка для сравнения.
|
|
24
|
+
|
|
25
|
+
## Возвращаемое значение
|
|
26
|
+
|
|
27
|
+
Возвращает отрицательное значение, если `a` меньше `b`, ноль, если `a` равно `b`, и положительное
|
|
28
|
+
значение, если `a` больше `b`.
|
|
29
|
+
|
|
30
|
+
## Примеры использования
|
|
31
|
+
|
|
32
|
+
1. Сравнение строк с числовыми значениями:
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
const result = natcompare('10', '2');
|
|
36
|
+
console.log(result); // 1
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
2. Сравнение строк с ведущими нулями:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
const result = natcompare('0010', '10');
|
|
43
|
+
console.log(result); // 0
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
3. Сравнение строк с пробелами:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
const result = natcompare(' 10', '10');
|
|
50
|
+
console.log(result); // 0
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
4. Сравнение строк с буквами и числами:
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
const result = natcompare('a10', 'a2');
|
|
57
|
+
console.log(result); // 1
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
5. Сравнение строк с разными символами:
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
const result = natcompare('10-', '10+');
|
|
64
|
+
console.log(result); // 1
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Исключения
|
|
68
|
+
|
|
69
|
+
- `TypeError`: Если параметры не являются строками.
|