@rogolev/value 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +14 -0
- package/README.md +19 -1
- package/docs/classes/Value/constructor.md +48 -0
- package/docs/classes/Value/get.md +51 -0
- package/docs/classes/Value/getType.md +71 -0
- package/docs/classes/Value/isArray.md +67 -0
- package/docs/classes/Value/isAssoc.md +68 -0
- package/docs/classes/Value/isBigInt.md +52 -0
- package/docs/classes/Value/isBool.md +60 -0
- package/docs/classes/Value/isBoolean.md +60 -0
- package/docs/classes/Value/isClass.md +55 -0
- package/docs/classes/Value/isEmpty.md +84 -0
- package/docs/classes/Value/isFloat.md +52 -0
- package/docs/classes/Value/isFunction.md +60 -0
- package/docs/classes/Value/isInfinity.md +60 -0
- package/docs/classes/Value/isInt.md +52 -0
- package/docs/classes/Value/isInteger.md +52 -0
- package/docs/classes/Value/isList.md +59 -0
- package/docs/classes/Value/isNaN.md +79 -0
- package/docs/classes/Value/isNull.md +59 -0
- package/docs/classes/Value/isNumber.md +80 -0
- package/docs/classes/Value/isNumeric.md +79 -0
- package/docs/classes/Value/isObject.md +68 -0
- package/docs/classes/Value/isScalar.md +72 -0
- package/docs/classes/Value/isString.md +67 -0
- package/docs/classes/Value/isSymbol.md +75 -0
- package/docs/classes/Value/isUndefined.md +67 -0
- package/docs/classes/Value/print.md +164 -0
- package/docs/classes/Value/printType.md +158 -0
- package/docs/classes/Value/setType.md +79 -0
- package/docs/classes/Value/toArray.md +85 -0
- package/docs/classes/Value/toAssoc.md +85 -0
- package/docs/classes/Value/toBool.md +71 -0
- package/docs/classes/Value/toBoolean.md +71 -0
- package/docs/classes/Value/toFloat.md +72 -0
- package/docs/classes/Value/toInt.md +72 -0
- package/docs/classes/Value/toInteger.md +72 -0
- package/docs/classes/Value/toList.md +77 -0
- package/docs/classes/Value/toObject.md +78 -0
- package/docs/classes/Value/toPrint.md +115 -0
- package/docs/classes/Value/toPrintType.md +110 -0
- package/docs/classes/Value/toString.md +134 -0
- package/docs/classes/Value.md +113 -0
- package/docs/classes.md +2 -0
- package/docs/constants.md +47 -0
- package/docs/helpers/value.md +95 -0
- package/docs/helpers.md +2 -0
- package/index.mjs +3 -0
- package/package.json +2 -2
- package/src/classes/Convert.mjs +818 -819
- package/src/classes/Type.mjs +1284 -1285
- package/src/classes/Value.mjs +2846 -0
- package/src/constants.mjs +14 -0
- package/src/helpers/array.mjs +107 -107
- package/src/helpers/empty.mjs +70 -70
- package/src/helpers/gettype.mjs +149 -133
- package/src/helpers/is_array.mjs +128 -128
- package/src/helpers/is_assoc.mjs +51 -51
- package/src/helpers/is_bigint.mjs +47 -47
- package/src/helpers/is_bool.mjs +43 -43
- package/src/helpers/is_boolean.mjs +43 -43
- package/src/helpers/is_class.mjs +87 -87
- package/src/helpers/is_float.mjs +67 -67
- package/src/helpers/is_function.mjs +74 -74
- package/src/helpers/is_infinity.mjs +52 -52
- package/src/helpers/is_int.mjs +57 -57
- package/src/helpers/is_integer.mjs +74 -74
- package/src/helpers/is_list.mjs +43 -43
- package/src/helpers/is_nan.mjs +51 -51
- package/src/helpers/is_null.mjs +37 -37
- package/src/helpers/is_number.mjs +49 -49
- package/src/helpers/is_numeric.mjs +64 -64
- package/src/helpers/is_object.mjs +72 -72
- package/src/helpers/is_scalar.mjs +45 -45
- package/src/helpers/is_string.mjs +46 -46
- package/src/helpers/is_symbol.mjs +46 -46
- package/src/helpers/is_undefined.mjs +44 -44
- package/src/helpers/print.mjs +245 -245
- package/src/helpers/print_type.mjs +261 -261
- package/src/helpers/settype.mjs +101 -101
- package/src/helpers/to_array.mjs +118 -118
- package/src/helpers/to_assoc.mjs +98 -98
- package/src/helpers/to_bool.mjs +68 -68
- package/src/helpers/to_boolean.mjs +64 -64
- package/src/helpers/to_float.mjs +72 -72
- package/src/helpers/to_int.mjs +93 -93
- package/src/helpers/to_integer.mjs +81 -81
- package/src/helpers/to_list.mjs +56 -56
- package/src/helpers/to_object.mjs +94 -94
- package/src/helpers/to_string.mjs +157 -157
- package/src/helpers/value.mjs +92 -0
- package/tests/classes/Convert.test.mjs +398 -399
- package/tests/classes/Type.test.mjs +1262 -1263
- package/tests/classes/Value.test.mjs +423 -0
- package/tests/constants.test.mjs +75 -0
- package/tests/helpers/array.test.mjs +58 -58
- package/tests/helpers/empty.test.mjs +22 -22
- package/tests/helpers/gettype.test.mjs +74 -74
- package/tests/helpers/is_array.test.mjs +404 -404
- package/tests/helpers/is_assoc.test.mjs +42 -42
- package/tests/helpers/is_bigint.test.mjs +51 -51
- package/tests/helpers/is_bool.test.mjs +43 -43
- package/tests/helpers/is_boolean.test.mjs +43 -43
- package/tests/helpers/is_class.test.mjs +84 -84
- package/tests/helpers/is_float.test.mjs +87 -87
- package/tests/helpers/is_function.test.mjs +83 -83
- package/tests/helpers/is_infinity.test.mjs +46 -46
- package/tests/helpers/is_int.test.mjs +45 -45
- package/tests/helpers/is_integer.test.mjs +64 -64
- package/tests/helpers/is_list.test.mjs +42 -42
- package/tests/helpers/is_nan.test.mjs +43 -43
- package/tests/helpers/is_null.test.mjs +17 -17
- package/tests/helpers/is_number.test.mjs +25 -25
- package/tests/helpers/is_numeric.test.mjs +30 -30
- package/tests/helpers/is_object.test.mjs +52 -52
- package/tests/helpers/is_scalar.test.mjs +21 -21
- package/tests/helpers/is_string.test.mjs +20 -20
- package/tests/helpers/is_symbol.test.mjs +20 -20
- package/tests/helpers/is_undefined.test.mjs +18 -18
- package/tests/helpers/print.test.mjs +62 -62
- package/tests/helpers/print_type.test.mjs +62 -62
- package/tests/helpers/settype.test.mjs +34 -34
- package/tests/helpers/to_array.test.mjs +38 -38
- package/tests/helpers/to_assoc.test.mjs +33 -33
- package/tests/helpers/to_bool.test.mjs +51 -51
- package/tests/helpers/to_boolean.test.mjs +51 -51
- package/tests/helpers/to_float.test.mjs +26 -26
- package/tests/helpers/to_int.test.mjs +48 -48
- package/tests/helpers/to_integer.test.mjs +48 -48
- package/tests/helpers/to_list.test.mjs +32 -32
- package/tests/helpers/to_object.test.mjs +36 -36
- package/tests/helpers/to_string.test.mjs +71 -71
- package/tests/helpers/value.test.mjs +68 -0
package/src/helpers/settype.mjs
CHANGED
@@ -1,101 +1,101 @@
|
|
1
|
-
import to_array from './to_array.mjs';
|
2
|
-
import to_bool from './to_bool.mjs';
|
3
|
-
import to_float from './to_float.mjs';
|
4
|
-
import to_int from './to_int.mjs';
|
5
|
-
import to_object from './to_object.mjs';
|
6
|
-
import to_string from './to_string.mjs';
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Приводит значение переменной к указанному типу.
|
10
|
-
*
|
11
|
-
* ### Описание
|
12
|
-
*
|
13
|
-
* Функция `settype` используется для преобразования значения переменной к указанному типу. Поддерживаются типы: `boolean`, `integer`, `float`, `string`, `array`, `object`.
|
14
|
-
*
|
15
|
-
* ### Параметры
|
16
|
-
*
|
17
|
-
* - `value` (any)
|
18
|
-
* Переменная, значение которой необходимо привести к указанному типу.
|
19
|
-
*
|
20
|
-
* - `type` (string)
|
21
|
-
* Тип, к которому необходимо привести значение переменной.
|
22
|
-
*
|
23
|
-
* ### Возвращаемое значение
|
24
|
-
*
|
25
|
-
* Возвращает значение переменной, приведенное к указанному типу.
|
26
|
-
*
|
27
|
-
* ### Примеры использования
|
28
|
-
*
|
29
|
-
* 1. Преобразование в булевое значение:
|
30
|
-
*
|
31
|
-
* ```js
|
32
|
-
* const result = settype('true', 'boolean');
|
33
|
-
* // Результат: true
|
34
|
-
* ```
|
35
|
-
*
|
36
|
-
* 2. Преобразование в целое число:
|
37
|
-
*
|
38
|
-
* ```js
|
39
|
-
* const result = settype('123', 'integer');
|
40
|
-
* // Результат: 123
|
41
|
-
* ```
|
42
|
-
*
|
43
|
-
* 3. Преобразование в число с плавающей точкой:
|
44
|
-
*
|
45
|
-
* ```js
|
46
|
-
* const result = settype('123.45', 'float');
|
47
|
-
* // Результат: 123.45
|
48
|
-
* ```
|
49
|
-
*
|
50
|
-
* 4. Преобразование в строку:
|
51
|
-
*
|
52
|
-
* ```js
|
53
|
-
* const result = settype(123, 'string');
|
54
|
-
* // Результат: '123'
|
55
|
-
* ```
|
56
|
-
*
|
57
|
-
* 5. Преобразование в массив:
|
58
|
-
*
|
59
|
-
* ```js
|
60
|
-
* const result = settype('example', 'array');
|
61
|
-
* // Результат: ['example']
|
62
|
-
* ```
|
63
|
-
*
|
64
|
-
* 6. Преобразование в объект:
|
65
|
-
*
|
66
|
-
* ```js
|
67
|
-
* const result = settype('example', 'object');
|
68
|
-
* // Результат: { value: 'example' }
|
69
|
-
* ```
|
70
|
-
*
|
71
|
-
* @param {any} value Переменная, значение которой необходимо привести к указанному типу.
|
72
|
-
* @param {string} type Тип, к которому необходимо привести значение переменной.
|
73
|
-
* @returns {any} Возвращает значение переменной, приведенное к указанному типу.
|
74
|
-
*/
|
75
|
-
export default function settype(value, type) {
|
76
|
-
if (type === 'boolean' || type === 'bool') {
|
77
|
-
return to_bool(value);
|
78
|
-
}
|
79
|
-
|
80
|
-
if (type === 'integer' || type === 'int') {
|
81
|
-
return to_int(value);
|
82
|
-
}
|
83
|
-
|
84
|
-
if (type === 'float') {
|
85
|
-
return to_float(value);
|
86
|
-
}
|
87
|
-
|
88
|
-
if (type === 'string') {
|
89
|
-
return to_string(value);
|
90
|
-
}
|
91
|
-
|
92
|
-
if (type === 'array') {
|
93
|
-
return to_array(value);
|
94
|
-
}
|
95
|
-
|
96
|
-
if (type === 'object') {
|
97
|
-
return to_object(value);
|
98
|
-
}
|
99
|
-
|
100
|
-
return value;
|
101
|
-
}
|
1
|
+
import to_array from './to_array.mjs';
|
2
|
+
import to_bool from './to_bool.mjs';
|
3
|
+
import to_float from './to_float.mjs';
|
4
|
+
import to_int from './to_int.mjs';
|
5
|
+
import to_object from './to_object.mjs';
|
6
|
+
import to_string from './to_string.mjs';
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Приводит значение переменной к указанному типу.
|
10
|
+
*
|
11
|
+
* ### Описание
|
12
|
+
*
|
13
|
+
* Функция `settype` используется для преобразования значения переменной к указанному типу. Поддерживаются типы: `boolean`, `integer`, `float`, `string`, `array`, `object`.
|
14
|
+
*
|
15
|
+
* ### Параметры
|
16
|
+
*
|
17
|
+
* - `value` (any)
|
18
|
+
* Переменная, значение которой необходимо привести к указанному типу.
|
19
|
+
*
|
20
|
+
* - `type` (string)
|
21
|
+
* Тип, к которому необходимо привести значение переменной.
|
22
|
+
*
|
23
|
+
* ### Возвращаемое значение
|
24
|
+
*
|
25
|
+
* Возвращает значение переменной, приведенное к указанному типу.
|
26
|
+
*
|
27
|
+
* ### Примеры использования
|
28
|
+
*
|
29
|
+
* 1. Преобразование в булевое значение:
|
30
|
+
*
|
31
|
+
* ```js
|
32
|
+
* const result = settype('true', 'boolean');
|
33
|
+
* // Результат: true
|
34
|
+
* ```
|
35
|
+
*
|
36
|
+
* 2. Преобразование в целое число:
|
37
|
+
*
|
38
|
+
* ```js
|
39
|
+
* const result = settype('123', 'integer');
|
40
|
+
* // Результат: 123
|
41
|
+
* ```
|
42
|
+
*
|
43
|
+
* 3. Преобразование в число с плавающей точкой:
|
44
|
+
*
|
45
|
+
* ```js
|
46
|
+
* const result = settype('123.45', 'float');
|
47
|
+
* // Результат: 123.45
|
48
|
+
* ```
|
49
|
+
*
|
50
|
+
* 4. Преобразование в строку:
|
51
|
+
*
|
52
|
+
* ```js
|
53
|
+
* const result = settype(123, 'string');
|
54
|
+
* // Результат: '123'
|
55
|
+
* ```
|
56
|
+
*
|
57
|
+
* 5. Преобразование в массив:
|
58
|
+
*
|
59
|
+
* ```js
|
60
|
+
* const result = settype('example', 'array');
|
61
|
+
* // Результат: ['example']
|
62
|
+
* ```
|
63
|
+
*
|
64
|
+
* 6. Преобразование в объект:
|
65
|
+
*
|
66
|
+
* ```js
|
67
|
+
* const result = settype('example', 'object');
|
68
|
+
* // Результат: { value: 'example' }
|
69
|
+
* ```
|
70
|
+
*
|
71
|
+
* @param {any} value Переменная, значение которой необходимо привести к указанному типу.
|
72
|
+
* @param {string} type Тип, к которому необходимо привести значение переменной.
|
73
|
+
* @returns {any} Возвращает значение переменной, приведенное к указанному типу.
|
74
|
+
*/
|
75
|
+
export default function settype(value, type) {
|
76
|
+
if (type === 'boolean' || type === 'bool') {
|
77
|
+
return to_bool(value);
|
78
|
+
}
|
79
|
+
|
80
|
+
if (type === 'integer' || type === 'int') {
|
81
|
+
return to_int(value);
|
82
|
+
}
|
83
|
+
|
84
|
+
if (type === 'float') {
|
85
|
+
return to_float(value);
|
86
|
+
}
|
87
|
+
|
88
|
+
if (type === 'string') {
|
89
|
+
return to_string(value);
|
90
|
+
}
|
91
|
+
|
92
|
+
if (type === 'array') {
|
93
|
+
return to_array(value);
|
94
|
+
}
|
95
|
+
|
96
|
+
if (type === 'object') {
|
97
|
+
return to_object(value);
|
98
|
+
}
|
99
|
+
|
100
|
+
return value;
|
101
|
+
}
|
package/src/helpers/to_array.mjs
CHANGED
@@ -1,118 +1,118 @@
|
|
1
|
-
import array from './array.mjs';
|
2
|
-
import is_array from './is_array.mjs';
|
3
|
-
import is_null from './is_null.mjs';
|
4
|
-
import is_undefined from './is_undefined.mjs';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Приводит значение переменной к массиву.
|
8
|
-
*
|
9
|
-
* ### Описание
|
10
|
-
*
|
11
|
-
* Функция `to_array` используется для преобразования различных типов данных в массив. Если значение
|
12
|
-
* уже является массивом (тип `Array` или ассоциативный массив), возвращается оно же. Объекты
|
13
|
-
* (экземпляры классов) преобразуются в массив с одним элементом.
|
14
|
-
*
|
15
|
-
* #### Примечание
|
16
|
-
*
|
17
|
-
* Функция `to_array` для объектов (ассоциативных массивов) возвращает результат
|
18
|
-
* работы функции `array`, которая создает объект-контейнер пар ключ-значение
|
19
|
-
* (ассоциативный массив) с помощью конструкции `Object.create(null)`,
|
20
|
-
* копирует все видимые пары в этот контейнер, а также добавляет итератор
|
21
|
-
* `Symbol.iterator` для перебора контейнера в цикле `for-of`.
|
22
|
-
*
|
23
|
-
* ### Параметры
|
24
|
-
*
|
25
|
-
* - `value` (any)
|
26
|
-
* Переменная, значение которой необходимо привести к массиву.
|
27
|
-
*
|
28
|
-
* ### Возвращаемое значение
|
29
|
-
*
|
30
|
-
* Возвращает массив, содержащий переданное значение. Если значение уже является массивом, возвращается оно же.
|
31
|
-
*
|
32
|
-
* ### Примеры использования
|
33
|
-
*
|
34
|
-
* 1. Преобразование строки в массив:
|
35
|
-
*
|
36
|
-
* ```js
|
37
|
-
* const result = to_array('example');
|
38
|
-
* // Результат: ["example"]
|
39
|
-
* ```
|
40
|
-
*
|
41
|
-
* 2. Преобразование числа в массив:
|
42
|
-
*
|
43
|
-
* ```js
|
44
|
-
* const result = to_array(123);
|
45
|
-
* // Результат: [123]
|
46
|
-
* ```
|
47
|
-
*
|
48
|
-
* 3. Преобразование массива (без изменений):
|
49
|
-
*
|
50
|
-
* ```js
|
51
|
-
* const result = to_array([1, 2, 3]);
|
52
|
-
* // Результат: [1, 2, 3]
|
53
|
-
* ```
|
54
|
-
*
|
55
|
-
* 4. Преобразование объекта в массив:
|
56
|
-
*
|
57
|
-
* Функция `to_array` для объектов (ассоциативных массивов) возвращает
|
58
|
-
* результат работы функции `array`, которая создает объект-контейнер
|
59
|
-
* пар ключ-значение (ассоциативный массив) с помощью конструкции
|
60
|
-
* `Object.create(null)`, копирует все видимые пары в этот контейнер,
|
61
|
-
* а также добавляет итератор `Symbol.iterator` для перебора контейнера
|
62
|
-
* в цикле `for-of`.
|
63
|
-
*
|
64
|
-
* ```js
|
65
|
-
* const result = to_array({ key: 'value' });
|
66
|
-
* // Результат: { key: "value" }
|
67
|
-
*
|
68
|
-
* const proto = Object.getPrototypeOf(result);
|
69
|
-
* // Результат: null
|
70
|
-
*
|
71
|
-
* for (const [key, value] of result) {
|
72
|
-
* console.log(key, value);
|
73
|
-
* }
|
74
|
-
* // Результат: 'key', 'value'
|
75
|
-
* ```
|
76
|
-
*
|
77
|
-
* 5. Преобразование экземпляра класса в массив:
|
78
|
-
*
|
79
|
-
* ```js
|
80
|
-
* class MyClass {}
|
81
|
-
*
|
82
|
-
* const instance = new MyClass();
|
83
|
-
* const result = to_array(instance);
|
84
|
-
* // Результат: [instance]
|
85
|
-
* ```
|
86
|
-
*
|
87
|
-
* 6. Преобразование null:
|
88
|
-
*
|
89
|
-
* ```js
|
90
|
-
* const result = to_array(null);
|
91
|
-
* // Результат: []
|
92
|
-
* ```
|
93
|
-
*
|
94
|
-
* 7. Преобразование undefined:
|
95
|
-
*
|
96
|
-
* ```js
|
97
|
-
* const result = to_array(undefined);
|
98
|
-
* // Результат: []
|
99
|
-
* ```
|
100
|
-
*
|
101
|
-
* @param {any} value Переменная, значение которой необходимо привести к массиву.
|
102
|
-
* @returns {Array|Object} Возвращает приведенное к массиву значение переменной `value`.
|
103
|
-
*/
|
104
|
-
export default function to_array(value) {
|
105
|
-
if (is_null(value) || is_undefined(value)) {
|
106
|
-
return [];
|
107
|
-
}
|
108
|
-
|
109
|
-
if (Array.isArray(value)) {
|
110
|
-
return value;
|
111
|
-
}
|
112
|
-
|
113
|
-
if (is_array(value)) {
|
114
|
-
return array(value);
|
115
|
-
}
|
116
|
-
|
117
|
-
return [value];
|
118
|
-
}
|
1
|
+
import array from './array.mjs';
|
2
|
+
import is_array from './is_array.mjs';
|
3
|
+
import is_null from './is_null.mjs';
|
4
|
+
import is_undefined from './is_undefined.mjs';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Приводит значение переменной к массиву.
|
8
|
+
*
|
9
|
+
* ### Описание
|
10
|
+
*
|
11
|
+
* Функция `to_array` используется для преобразования различных типов данных в массив. Если значение
|
12
|
+
* уже является массивом (тип `Array` или ассоциативный массив), возвращается оно же. Объекты
|
13
|
+
* (экземпляры классов) преобразуются в массив с одним элементом.
|
14
|
+
*
|
15
|
+
* #### Примечание
|
16
|
+
*
|
17
|
+
* Функция `to_array` для объектов (ассоциативных массивов) возвращает результат
|
18
|
+
* работы функции `array`, которая создает объект-контейнер пар ключ-значение
|
19
|
+
* (ассоциативный массив) с помощью конструкции `Object.create(null)`,
|
20
|
+
* копирует все видимые пары в этот контейнер, а также добавляет итератор
|
21
|
+
* `Symbol.iterator` для перебора контейнера в цикле `for-of`.
|
22
|
+
*
|
23
|
+
* ### Параметры
|
24
|
+
*
|
25
|
+
* - `value` (any)
|
26
|
+
* Переменная, значение которой необходимо привести к массиву.
|
27
|
+
*
|
28
|
+
* ### Возвращаемое значение
|
29
|
+
*
|
30
|
+
* Возвращает массив, содержащий переданное значение. Если значение уже является массивом, возвращается оно же.
|
31
|
+
*
|
32
|
+
* ### Примеры использования
|
33
|
+
*
|
34
|
+
* 1. Преобразование строки в массив:
|
35
|
+
*
|
36
|
+
* ```js
|
37
|
+
* const result = to_array('example');
|
38
|
+
* // Результат: ["example"]
|
39
|
+
* ```
|
40
|
+
*
|
41
|
+
* 2. Преобразование числа в массив:
|
42
|
+
*
|
43
|
+
* ```js
|
44
|
+
* const result = to_array(123);
|
45
|
+
* // Результат: [123]
|
46
|
+
* ```
|
47
|
+
*
|
48
|
+
* 3. Преобразование массива (без изменений):
|
49
|
+
*
|
50
|
+
* ```js
|
51
|
+
* const result = to_array([1, 2, 3]);
|
52
|
+
* // Результат: [1, 2, 3]
|
53
|
+
* ```
|
54
|
+
*
|
55
|
+
* 4. Преобразование объекта в массив:
|
56
|
+
*
|
57
|
+
* Функция `to_array` для объектов (ассоциативных массивов) возвращает
|
58
|
+
* результат работы функции `array`, которая создает объект-контейнер
|
59
|
+
* пар ключ-значение (ассоциативный массив) с помощью конструкции
|
60
|
+
* `Object.create(null)`, копирует все видимые пары в этот контейнер,
|
61
|
+
* а также добавляет итератор `Symbol.iterator` для перебора контейнера
|
62
|
+
* в цикле `for-of`.
|
63
|
+
*
|
64
|
+
* ```js
|
65
|
+
* const result = to_array({ key: 'value' });
|
66
|
+
* // Результат: { key: "value" }
|
67
|
+
*
|
68
|
+
* const proto = Object.getPrototypeOf(result);
|
69
|
+
* // Результат: null
|
70
|
+
*
|
71
|
+
* for (const [key, value] of result) {
|
72
|
+
* console.log(key, value);
|
73
|
+
* }
|
74
|
+
* // Результат: 'key', 'value'
|
75
|
+
* ```
|
76
|
+
*
|
77
|
+
* 5. Преобразование экземпляра класса в массив:
|
78
|
+
*
|
79
|
+
* ```js
|
80
|
+
* class MyClass {}
|
81
|
+
*
|
82
|
+
* const instance = new MyClass();
|
83
|
+
* const result = to_array(instance);
|
84
|
+
* // Результат: [instance]
|
85
|
+
* ```
|
86
|
+
*
|
87
|
+
* 6. Преобразование null:
|
88
|
+
*
|
89
|
+
* ```js
|
90
|
+
* const result = to_array(null);
|
91
|
+
* // Результат: []
|
92
|
+
* ```
|
93
|
+
*
|
94
|
+
* 7. Преобразование undefined:
|
95
|
+
*
|
96
|
+
* ```js
|
97
|
+
* const result = to_array(undefined);
|
98
|
+
* // Результат: []
|
99
|
+
* ```
|
100
|
+
*
|
101
|
+
* @param {any} value Переменная, значение которой необходимо привести к массиву.
|
102
|
+
* @returns {Array|Object} Возвращает приведенное к массиву значение переменной `value`.
|
103
|
+
*/
|
104
|
+
export default function to_array(value) {
|
105
|
+
if (is_null(value) || is_undefined(value)) {
|
106
|
+
return [];
|
107
|
+
}
|
108
|
+
|
109
|
+
if (Array.isArray(value)) {
|
110
|
+
return value;
|
111
|
+
}
|
112
|
+
|
113
|
+
if (is_array(value)) {
|
114
|
+
return array(value);
|
115
|
+
}
|
116
|
+
|
117
|
+
return [value];
|
118
|
+
}
|
package/src/helpers/to_assoc.mjs
CHANGED
@@ -1,98 +1,98 @@
|
|
1
|
-
import is_array from './is_array.mjs';
|
2
|
-
import is_null from './is_null.mjs';
|
3
|
-
import is_undefined from './is_undefined.mjs';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Преобразует значение в ассоциативный массив.
|
7
|
-
*
|
8
|
-
* ### Описание
|
9
|
-
*
|
10
|
-
* Функция `to_assoc` используется для преобразования различных типов данных в ассоциативный массив.
|
11
|
-
* Если значение уже является объектом, возвращается оно же. Массивы преобразуются в объекты с
|
12
|
-
* индексами в качестве ключей.
|
13
|
-
*
|
14
|
-
* #### Примечание
|
15
|
-
*
|
16
|
-
* Функция `to_assoc` для массивов возвращает объект, где ключами являются индексы элементов массива.
|
17
|
-
*
|
18
|
-
* ### Параметры
|
19
|
-
*
|
20
|
-
* - `value` (any)
|
21
|
-
* Значение, которое необходимо преобразовать в ассоциативный массив.
|
22
|
-
*
|
23
|
-
* ### Возвращаемое значение
|
24
|
-
*
|
25
|
-
* Возвращает объект, представляющий ассоциативный массив. Если значение уже является объектом, возвращается оно же.
|
26
|
-
*
|
27
|
-
* ### Примеры использования
|
28
|
-
*
|
29
|
-
* 1. Преобразование строки в ассоциативный массив:
|
30
|
-
*
|
31
|
-
* ```js
|
32
|
-
* const result = to_assoc('example');
|
33
|
-
* // Результат: { 0: 'example' }
|
34
|
-
* ```
|
35
|
-
*
|
36
|
-
* 2. Преобразование числа в ассоциативный массив:
|
37
|
-
*
|
38
|
-
* ```js
|
39
|
-
* const result = to_assoc(123);
|
40
|
-
* // Результат: { 0: 123 }
|
41
|
-
* ```
|
42
|
-
*
|
43
|
-
* 3. Преобразование массива в ассоциативный массив:
|
44
|
-
*
|
45
|
-
* ```js
|
46
|
-
* const result = to_assoc([1, 2, 3]);
|
47
|
-
* // Результат: { 0: 1, 1: 2, 2: 3 }
|
48
|
-
* ```
|
49
|
-
*
|
50
|
-
* 4. Преобразование ассоциативного массива (без изменений):
|
51
|
-
*
|
52
|
-
* ```js
|
53
|
-
* const result = to_assoc({ key: 'value' });
|
54
|
-
* // Результат: { key: 'value' }
|
55
|
-
* ```
|
56
|
-
*
|
57
|
-
* 5. Преобразование экземпляра класса в ассоциативный массив:
|
58
|
-
*
|
59
|
-
* ```js
|
60
|
-
* class MyClass {}
|
61
|
-
*
|
62
|
-
* const instance = new MyClass();
|
63
|
-
* const result = to_assoc(instance);
|
64
|
-
* // Результат: { 0: instance }
|
65
|
-
* ```
|
66
|
-
*
|
67
|
-
* 6. Преобразование null:
|
68
|
-
*
|
69
|
-
* ```js
|
70
|
-
* const result = to_assoc(null);
|
71
|
-
* // Результат: {}
|
72
|
-
* ```
|
73
|
-
*
|
74
|
-
* 7. Преобразование undefined:
|
75
|
-
*
|
76
|
-
* ```js
|
77
|
-
* const result = to_assoc(undefined);
|
78
|
-
* // Результат: {}
|
79
|
-
* ```
|
80
|
-
*
|
81
|
-
* @param {any} value Значение, которое необходимо преобразовать.
|
82
|
-
* @returns {Object} Возвращает объект, представляющий ассоциативный массив.
|
83
|
-
*/
|
84
|
-
export default function to_assoc(value) {
|
85
|
-
if (is_null(value) || is_undefined(value)) {
|
86
|
-
return {};
|
87
|
-
}
|
88
|
-
|
89
|
-
if (Array.isArray(value)) {
|
90
|
-
return { ...value };
|
91
|
-
}
|
92
|
-
|
93
|
-
if (is_array(value)) {
|
94
|
-
return value;
|
95
|
-
}
|
96
|
-
|
97
|
-
return { 0: value };
|
98
|
-
}
|
1
|
+
import is_array from './is_array.mjs';
|
2
|
+
import is_null from './is_null.mjs';
|
3
|
+
import is_undefined from './is_undefined.mjs';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Преобразует значение в ассоциативный массив.
|
7
|
+
*
|
8
|
+
* ### Описание
|
9
|
+
*
|
10
|
+
* Функция `to_assoc` используется для преобразования различных типов данных в ассоциативный массив.
|
11
|
+
* Если значение уже является объектом, возвращается оно же. Массивы преобразуются в объекты с
|
12
|
+
* индексами в качестве ключей.
|
13
|
+
*
|
14
|
+
* #### Примечание
|
15
|
+
*
|
16
|
+
* Функция `to_assoc` для массивов возвращает объект, где ключами являются индексы элементов массива.
|
17
|
+
*
|
18
|
+
* ### Параметры
|
19
|
+
*
|
20
|
+
* - `value` (any)
|
21
|
+
* Значение, которое необходимо преобразовать в ассоциативный массив.
|
22
|
+
*
|
23
|
+
* ### Возвращаемое значение
|
24
|
+
*
|
25
|
+
* Возвращает объект, представляющий ассоциативный массив. Если значение уже является объектом, возвращается оно же.
|
26
|
+
*
|
27
|
+
* ### Примеры использования
|
28
|
+
*
|
29
|
+
* 1. Преобразование строки в ассоциативный массив:
|
30
|
+
*
|
31
|
+
* ```js
|
32
|
+
* const result = to_assoc('example');
|
33
|
+
* // Результат: { 0: 'example' }
|
34
|
+
* ```
|
35
|
+
*
|
36
|
+
* 2. Преобразование числа в ассоциативный массив:
|
37
|
+
*
|
38
|
+
* ```js
|
39
|
+
* const result = to_assoc(123);
|
40
|
+
* // Результат: { 0: 123 }
|
41
|
+
* ```
|
42
|
+
*
|
43
|
+
* 3. Преобразование массива в ассоциативный массив:
|
44
|
+
*
|
45
|
+
* ```js
|
46
|
+
* const result = to_assoc([1, 2, 3]);
|
47
|
+
* // Результат: { 0: 1, 1: 2, 2: 3 }
|
48
|
+
* ```
|
49
|
+
*
|
50
|
+
* 4. Преобразование ассоциативного массива (без изменений):
|
51
|
+
*
|
52
|
+
* ```js
|
53
|
+
* const result = to_assoc({ key: 'value' });
|
54
|
+
* // Результат: { key: 'value' }
|
55
|
+
* ```
|
56
|
+
*
|
57
|
+
* 5. Преобразование экземпляра класса в ассоциативный массив:
|
58
|
+
*
|
59
|
+
* ```js
|
60
|
+
* class MyClass {}
|
61
|
+
*
|
62
|
+
* const instance = new MyClass();
|
63
|
+
* const result = to_assoc(instance);
|
64
|
+
* // Результат: { 0: instance }
|
65
|
+
* ```
|
66
|
+
*
|
67
|
+
* 6. Преобразование null:
|
68
|
+
*
|
69
|
+
* ```js
|
70
|
+
* const result = to_assoc(null);
|
71
|
+
* // Результат: {}
|
72
|
+
* ```
|
73
|
+
*
|
74
|
+
* 7. Преобразование undefined:
|
75
|
+
*
|
76
|
+
* ```js
|
77
|
+
* const result = to_assoc(undefined);
|
78
|
+
* // Результат: {}
|
79
|
+
* ```
|
80
|
+
*
|
81
|
+
* @param {any} value Значение, которое необходимо преобразовать.
|
82
|
+
* @returns {Object} Возвращает объект, представляющий ассоциативный массив.
|
83
|
+
*/
|
84
|
+
export default function to_assoc(value) {
|
85
|
+
if (is_null(value) || is_undefined(value)) {
|
86
|
+
return {};
|
87
|
+
}
|
88
|
+
|
89
|
+
if (Array.isArray(value)) {
|
90
|
+
return { ...value };
|
91
|
+
}
|
92
|
+
|
93
|
+
if (is_array(value)) {
|
94
|
+
return value;
|
95
|
+
}
|
96
|
+
|
97
|
+
return { 0: value };
|
98
|
+
}
|