tools-for-js 1.4.0 → 1.4.1
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/README.md +4 -0
- package/lib/index.js +24 -0
- package/lib/utils/random.js +85 -30
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -62,4 +62,8 @@ import { API } from 'tools-for-js'
|
|
|
62
62
|
| 随机颜色 | randomColor |
|
|
63
63
|
| 创建 UUID | createUUID |
|
|
64
64
|
| 随机 MAC 地址 | randomMac |
|
|
65
|
+
| 随机索引 | randomIndex |
|
|
66
|
+
| 随机数组中的值 | randomEnum |
|
|
67
|
+
| 随机数组中的 n 个值 | randomNumEnum |
|
|
68
|
+
| 随机指定范围的整数 | randomIntRange |
|
|
65
69
|
| 待更新 | function |
|
package/lib/index.js
CHANGED
|
@@ -195,6 +195,24 @@ Object.defineProperty(exports, "randomColor", {
|
|
|
195
195
|
return _random.randomColor;
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
|
+
Object.defineProperty(exports, "randomEnum", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function get() {
|
|
201
|
+
return _random.randomEnum;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
Object.defineProperty(exports, "randomIndex", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function get() {
|
|
207
|
+
return _random.randomIndex;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
Object.defineProperty(exports, "randomIntRange", {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
get: function get() {
|
|
213
|
+
return _random.randomIntRange;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
198
216
|
Object.defineProperty(exports, "randomMac", {
|
|
199
217
|
enumerable: true,
|
|
200
218
|
get: function get() {
|
|
@@ -207,6 +225,12 @@ Object.defineProperty(exports, "randomNum", {
|
|
|
207
225
|
return _random.randomNum;
|
|
208
226
|
}
|
|
209
227
|
});
|
|
228
|
+
Object.defineProperty(exports, "randomNumEnum", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function get() {
|
|
231
|
+
return _random.randomNumEnum;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
210
234
|
Object.defineProperty(exports, "replacePath", {
|
|
211
235
|
enumerable: true,
|
|
212
236
|
get: function get() {
|
package/lib/utils/random.js
CHANGED
|
@@ -5,7 +5,55 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.randomCode = exports.createUUID = void 0;
|
|
7
7
|
exports.randomColor = randomColor;
|
|
8
|
-
exports.randomNum = exports.randomMac = void 0;
|
|
8
|
+
exports.randomNumEnum = exports.randomNum = exports.randomMac = exports.randomIntRange = exports.randomIndex = exports.randomEnum = void 0;
|
|
9
|
+
/*******
|
|
10
|
+
* @description: 随机索引
|
|
11
|
+
* @author: 琴时
|
|
12
|
+
* @param {*} length [长度] [默认为10==>0~9]
|
|
13
|
+
* @return {*}
|
|
14
|
+
*/
|
|
15
|
+
var randomIndex = exports.randomIndex = function randomIndex() {
|
|
16
|
+
var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
17
|
+
return Math.floor(Math.random() * length);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/*******
|
|
21
|
+
* @description: 创建UUID
|
|
22
|
+
* UUID(Universally Unique IDentifier) 全局唯一标识符。
|
|
23
|
+
* UUID是一种由算法生成的二进制长度为128位的数字标识符。
|
|
24
|
+
* UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
|
|
25
|
+
* 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
|
|
26
|
+
* 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
|
|
27
|
+
* @author: 琴时
|
|
28
|
+
* @param {String} symbol [分隔符] [默认为空]
|
|
29
|
+
* @return {String}
|
|
30
|
+
* @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
|
|
31
|
+
*/
|
|
32
|
+
var createUUID = exports.createUUID = function createUUID() {
|
|
33
|
+
var symbol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
34
|
+
var s = [];
|
|
35
|
+
var hexDigits = '0123456789abcdef';
|
|
36
|
+
for (var i = 0; i < 36; i++) {
|
|
37
|
+
s[i] = hexDigits.charAt(randomIndex(16));
|
|
38
|
+
}
|
|
39
|
+
s[14] = '4'; // bits 12-15 of 时间和版本字段设置为0010
|
|
40
|
+
s[19] = hexDigits.charAt(s[19] & 3 | 8); // bits 6-7 of the clock_seq_hi_and_reserved to 01
|
|
41
|
+
s[8] = s[13] = s[18] = s[23] = '-';
|
|
42
|
+
return s.join('').replace(/-/g, symbol);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/*******
|
|
46
|
+
* @description: 随机MAC地址
|
|
47
|
+
* @author: 琴时
|
|
48
|
+
* @return {String}
|
|
49
|
+
*/
|
|
50
|
+
var randomMac = exports.randomMac = function randomMac() {
|
|
51
|
+
return 'XX:XX:XX:XX:XX:XX'.replace(/X/g, function () {
|
|
52
|
+
var hexDigits = '0123456789ABCDEF';
|
|
53
|
+
return hexDigits.charAt(randomIndex(16));
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
9
57
|
/*******
|
|
10
58
|
* @description: 随机数字
|
|
11
59
|
* @author: 琴时
|
|
@@ -17,7 +65,7 @@ var randomNum = exports.randomNum = function randomNum() {
|
|
|
17
65
|
var result = '';
|
|
18
66
|
var decimalDigits = '0123456789';
|
|
19
67
|
for (var i = 0; i < length; i++) {
|
|
20
|
-
var index =
|
|
68
|
+
var index = randomIndex(10); //随机生成一位0~9的数
|
|
21
69
|
result += decimalDigits.charAt(index);
|
|
22
70
|
}
|
|
23
71
|
return result;
|
|
@@ -37,7 +85,7 @@ var randomCode = exports.randomCode = function randomCode() {
|
|
|
37
85
|
var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
38
86
|
var character = num + lower + capital;
|
|
39
87
|
for (var i = 0; i < length; i++) {
|
|
40
|
-
var index =
|
|
88
|
+
var index = randomIndex(character.length); //随机生成一位0~61的数
|
|
41
89
|
result += character.charAt(index);
|
|
42
90
|
}
|
|
43
91
|
return result;
|
|
@@ -54,7 +102,7 @@ function randomColor() {
|
|
|
54
102
|
var hexDigits = '0123456789ABCDEF';
|
|
55
103
|
var color = '#';
|
|
56
104
|
for (var i = 0; i < 6; i++) {
|
|
57
|
-
var index =
|
|
105
|
+
var index = randomIndex(16); //随机生成一位0~15的数
|
|
58
106
|
color += hexDigits.charAt(index);
|
|
59
107
|
}
|
|
60
108
|
//如果生成的颜色和默认颜色重复了,则重新生成
|
|
@@ -63,38 +111,45 @@ function randomColor() {
|
|
|
63
111
|
}
|
|
64
112
|
|
|
65
113
|
/*******
|
|
66
|
-
* @description:
|
|
67
|
-
* UUID(Universally Unique IDentifier) 全局唯一标识符。
|
|
68
|
-
* UUID是一种由算法生成的二进制长度为128位的数字标识符。
|
|
69
|
-
* UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
|
|
70
|
-
* 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
|
|
71
|
-
* 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
|
|
114
|
+
* @description: 随机数组中的值
|
|
72
115
|
* @author: 琴时
|
|
73
|
-
* @param {
|
|
74
|
-
* @return {
|
|
75
|
-
* @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
|
|
116
|
+
* @param {Array} list
|
|
117
|
+
* @return {*}
|
|
76
118
|
*/
|
|
77
|
-
var
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
119
|
+
var randomEnum = exports.randomEnum = function randomEnum() {
|
|
120
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
121
|
+
return list[randomIndex(list.length)];
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/*******
|
|
125
|
+
* @description: 随机数组中的n个值
|
|
126
|
+
* @author: 琴时
|
|
127
|
+
* @param {*} array
|
|
128
|
+
* @param {*} num
|
|
129
|
+
* @return {Array}
|
|
130
|
+
*/
|
|
131
|
+
var randomNumEnum = exports.randomNumEnum = function randomNumEnum(array, num) {
|
|
132
|
+
var shuffled = array.slice(0),
|
|
133
|
+
i = array.length,
|
|
134
|
+
min = i - num,
|
|
135
|
+
temp,
|
|
136
|
+
index;
|
|
137
|
+
while (i-- > min) {
|
|
138
|
+
index = Math.floor((i + 1) * Math.random());
|
|
139
|
+
temp = shuffled[index];
|
|
140
|
+
shuffled[index] = shuffled[i];
|
|
141
|
+
shuffled[i] = temp;
|
|
83
142
|
}
|
|
84
|
-
|
|
85
|
-
s[19] = hexDigits.charAt(s[19] & 3 | 8); // bits 6-7 of the clock_seq_hi_and_reserved to 01
|
|
86
|
-
s[8] = s[13] = s[18] = s[23] = '-';
|
|
87
|
-
return s.join('').replace(/-/g, symbol);
|
|
143
|
+
return shuffled.slice(min);
|
|
88
144
|
};
|
|
89
145
|
|
|
90
146
|
/*******
|
|
91
|
-
* @description:
|
|
147
|
+
* @description: 随机指定范围的整数
|
|
92
148
|
* @author: 琴时
|
|
93
|
-
* @
|
|
149
|
+
* @param {Number} min [最小值]
|
|
150
|
+
* @param {Number} max [最大值]
|
|
151
|
+
* @return {Number} 随机值
|
|
94
152
|
*/
|
|
95
|
-
var
|
|
96
|
-
return
|
|
97
|
-
var hexDigits = '0123456789ABCDEF';
|
|
98
|
-
return hexDigits.charAt(Math.floor(Math.random() * 16));
|
|
99
|
-
});
|
|
153
|
+
var randomIntRange = exports.randomIntRange = function randomIntRange(min, max) {
|
|
154
|
+
return randomIndex(max - min + 1) + min;
|
|
100
155
|
};
|