@rogolev/value 0.0.2 → 0.0.3
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 +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
|
+
}
|