@zwa73/utils 1.0.1 → 1.0.2

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.
@@ -0,0 +1,324 @@
1
+ type struct = number | string;
2
+ export declare class SList<T> {
3
+ private _arr;
4
+ constructor(obj?: Array<T> | number);
5
+ /**返回数组长度*/
6
+ size(): number;
7
+ /**获取指定下标的元素
8
+ * @param index 下标
9
+ */
10
+ get(index: number): T;
11
+ /**设置指定下标的元素
12
+ * 返回自身 改变自身
13
+ * @param index 下标
14
+ * @param value 值
15
+ * @returns 自身
16
+ */
17
+ set(index: number, value: T): SList<T>;
18
+ /**连接两个数组
19
+ * @param list 目标数组
20
+ * @returns 新数组
21
+ */
22
+ concat(list: SList<T>): SList<T>;
23
+ /**在数组末尾添加一个元素
24
+ * 返回自身 改变自身
25
+ * @param value 值
26
+ */
27
+ push(value: T): SList<T>;
28
+ /**在数组末尾添加一个数组
29
+ * 改变自身
30
+ * @param list 目标数组
31
+ * @returns 自身
32
+ */
33
+ pushArr(list: SList<T>): this;
34
+ /**截取从起始点到结束点之前的一段数组
35
+ * @param strat 开始点
36
+ * @param end 结束点
37
+ * @returns 新数组
38
+ */
39
+ slice(strat: number, end: number): SList<T>;
40
+ /**翻转数组
41
+ * 改变自身
42
+ * @returns 自身
43
+ */
44
+ reverse(): SList<T>;
45
+ /**将SList转换为数组 */
46
+ toArray(): T[];
47
+ /**返回指定元素在数组中首次出现的位置
48
+ * @param value 目标元素
49
+ */
50
+ indexOf(value: T): number;
51
+ /**返回指定元素在数组中最后一次出现的位置
52
+ * @param value 目标元素
53
+ */
54
+ lastIndexOf(value: T): number;
55
+ /**判断数组中是否包含指定元素
56
+ * @param value 目标元素
57
+ */
58
+ contains(value: T): boolean;
59
+ /**获取迭代器 */
60
+ iterator(): SIterator<T>;
61
+ /**从index开始删除count个元素
62
+ * 改变自身
63
+ * @param index 起始点
64
+ * @param count 数量
65
+ * @returns 自身
66
+ */
67
+ removeRange(index: number, count: number): SList<T>;
68
+ /**删除对应下标下的元素
69
+ * 改变自身
70
+ * @param i 下标
71
+ * @returns 自身
72
+ */
73
+ remove(i: number): SList<T>;
74
+ /**删除第一个匹配的项目(改变长度)
75
+ * 改变自身
76
+ * @param obj 需删除目标
77
+ * @returns 自身
78
+ */
79
+ removeMember(obj: T): SList<T>;
80
+ /**删除所有匹配的项目
81
+ * 改变自身
82
+ * @param obj 需删除目标
83
+ * @returns 自身
84
+ */
85
+ removeAllMember(obj: T): SList<T>;
86
+ /**在这个下标对应的元素前添加一个元素
87
+ * 改变自身
88
+ * @param index 下标
89
+ * @param obj 添加对象
90
+ * @returns 自身
91
+ */
92
+ insert(index: number, obj: T): SList<T>;
93
+ /**在这个下标对应的元素前添加一组元素
94
+ * 改变自身
95
+ * @param index 下标
96
+ * @param obj 添加对象
97
+ * @returns 自身
98
+ */
99
+ insertRange(index: number, obj: SList<T>): SList<T>;
100
+ /**克隆数组
101
+ * @returns 新数组
102
+ */
103
+ clone(): SList<T>;
104
+ /**判断数组是否为空
105
+ */
106
+ isEmpty(): boolean;
107
+ /**删除数组中的重复元素
108
+ * 改变自身
109
+ * @returns 自身
110
+ */
111
+ removeDuplicates(): SList<T>;
112
+ /**交集
113
+ * @param lists 数组列表
114
+ * @returns 新数组
115
+ */
116
+ intersection(...lists: SList<T>[]): SList<T>;
117
+ /**并集
118
+ * @param lists 数组列表
119
+ * @returns 新数组
120
+ */
121
+ union(...lists: SList<T>[]): SList<T>;
122
+ /**返回符合条件的成员组成的新数组
123
+ * @param func 条件函数
124
+ * @returns 新数组
125
+ */
126
+ filt(func: (value: T) => boolean): SList<T>;
127
+ /**遍历数组的每一个元素
128
+ * @param func 处理函数
129
+ * @returns 自身
130
+ */
131
+ each(func: (value: T) => void): SList<T>;
132
+ /**对数组的每一个元素进行加工,返回加工完成的成员组成的新数组
133
+ * @param func 加工函数
134
+ * @returns 新数组
135
+ */
136
+ map<O>(func: (value: T) => O): SList<O>;
137
+ /**对数组进行排序
138
+ * 如函数返回值大于 0 则将 x 排在 y 后面,小于 0 则将 x 排在 y 前面
139
+ * 改变自身
140
+ * @param func 比较函数
141
+ * @returns 自身
142
+ */
143
+ sort(func: (a: T, b: T) => number): SList<T>;
144
+ /**对数组进行统计
145
+ * @param init 初始值
146
+ * @param func 统计函数
147
+ * @returns 结果
148
+ */
149
+ stat<O>(init: O, func: (accumulator: O, currentValue: T) => O): O;
150
+ [Symbol.iterator](): {
151
+ next(): {
152
+ value: T | null;
153
+ done: boolean;
154
+ };
155
+ };
156
+ }
157
+ export declare class SIterator<T> {
158
+ _index: number;
159
+ _list: SList<T>;
160
+ constructor(list: SList<T>);
161
+ /**判断还有没有下一个元素
162
+ */
163
+ hasNext(): boolean;
164
+ /**判断当前下标有无元素
165
+ */
166
+ hasCurr(): boolean;
167
+ /**判断还有没有上一个元素
168
+ */
169
+ hasPre(): boolean;
170
+ /**返回下一个下标指向的数组内成员,然后下标自加1
171
+ */
172
+ next(): T;
173
+ /**返回上一个下标指向的数组内成员,然后下标自减1
174
+ */
175
+ pre(): T;
176
+ /**返回当前下标指向的数组内成员
177
+ */
178
+ curr(): T;
179
+ /**返回遍历长度
180
+ * @returns 遍历长度
181
+ */
182
+ size(): number;
183
+ /**获取下个下标
184
+ * @returns 下个下标
185
+ */
186
+ nextIndex(): number;
187
+ /**获取当前下标
188
+ * @returns 当前下标
189
+ */
190
+ currIndex(): number;
191
+ /**获取上个下标
192
+ * @returns 上个下标
193
+ */
194
+ preIndex(): number;
195
+ /**判断是否是最后一个
196
+ * @returns 是否是最后一个
197
+ */
198
+ isLast(): boolean;
199
+ /**设置数组在迭代器当前下标中的内容
200
+ * @param val 要设置的值
201
+ */
202
+ set(val: T): void;
203
+ /**删除数组在当前下标的内容,然后将下标移至上一位,改变数组长度
204
+ */
205
+ remove(): void;
206
+ /**在当前下标前插入元素,然后将下标移至原元素,即下一位,改变数组长度
207
+ * @param obj 要插入的元素
208
+ */
209
+ addPre(obj: T): void;
210
+ /**在当前下标后插入元素,然后将下标移至新元素,即下一位,改变数组长度
211
+ * @param obj 要插入的元素
212
+ */
213
+ addNext(obj: T): void;
214
+ }
215
+ export declare class SEntry<K extends struct, V> {
216
+ _key: K;
217
+ _value: V;
218
+ constructor(key: K, value: V);
219
+ getKey(): K;
220
+ getValue(): V;
221
+ }
222
+ export declare class SHashMap<K extends struct, V> {
223
+ _obj: Record<K, V>;
224
+ constructor();
225
+ /**添加一个键值对
226
+ * @param entry 键值对
227
+ * @returns 自身
228
+ */
229
+ putEntry(entry: SEntry<K, V>): SHashMap<K, V>;
230
+ /**获取指定键的值
231
+ * @param key 键
232
+ * @returns 值
233
+ */
234
+ get(key: K): V | null;
235
+ /**添加一个键值对
236
+ * @param key 键
237
+ * @param value 值
238
+ * @returns 自身
239
+ */
240
+ put(key: K, value: V): SHashMap<K, V>;
241
+ /**判断是否存在指定键
242
+ * @param key 键
243
+ * @returns 是否存在
244
+ */
245
+ has(key: K): boolean;
246
+ /**获取所有键值对
247
+ * @returns 键值对列表
248
+ */
249
+ entrys(): SList<SEntry<K, V>>;
250
+ /**获取所有键
251
+ * @returns 键列表
252
+ */
253
+ keys(): SList<K>;
254
+ /**获取所有值
255
+ * @returns 值列表
256
+ */
257
+ values(): SList<V>;
258
+ /**获取迭代器
259
+ * @returns 迭代器
260
+ */
261
+ iterator(): SIterator<SEntry<K, V>>;
262
+ /**删除指定键的键值对
263
+ * @param key 键
264
+ * @returns 删除的值
265
+ */
266
+ remove(key: K): V;
267
+ /**清空哈希表
268
+ * @returns 自身
269
+ */
270
+ clear(): SHashMap<K, V>;
271
+ /**判断哈希表是否为空
272
+ * @returns 是否为空
273
+ */
274
+ isEmpty(): boolean;
275
+ /**判断是否存在指定值
276
+ * @param val 值
277
+ * @returns 是否存在
278
+ */
279
+ containsValue(val: V): boolean;
280
+ /**判断是否存在指定键
281
+ * @param key 键
282
+ * @returns 是否存在
283
+ */
284
+ containsKey(key: K): boolean;
285
+ /**加载指定键的值,若不存在则添加默认值并返回默认值
286
+ * @param key 键
287
+ * @param def 默认值
288
+ * @returns 值或默认值
289
+ */
290
+ load(key: K, def: V): V;
291
+ /**合并另一个哈希表,可选择是否覆盖已有键值对
292
+ * @param nmap 另一个哈希表
293
+ * @param isCover 是否覆盖已有键值对,默认为 true
294
+ * @returns 自身
295
+ */
296
+ merge(nmap: SHashMap<K, V>, isCover?: boolean): SHashMap<K, V>;
297
+ /**获取哈希表大小(键的数量)
298
+ * @returns 大小(键的数量)
299
+ */
300
+ size(): number;
301
+ /**对哈希表的每一个键值对进行加工,返回加工完成的键值对组成的新哈希表
302
+ * @param func 加工函数
303
+ * @returns 新哈希表
304
+ */
305
+ map<OK extends struct, OV>(func: (entry: SEntry<K, V>) => SEntry<OK, OV>): SHashMap<OK, OV>;
306
+ /**返回符合条件的键值对组成的新哈希表
307
+ * @param func 条件函数
308
+ * @returns 新哈希表
309
+ */
310
+ filt(func: (entry: SEntry<K, V>) => boolean): SHashMap<K, V>;
311
+ /**遍历哈希表的每一个键值对
312
+ * @param func 处理函数
313
+ * @returns 自身
314
+ */
315
+ each(func: (entry: SEntry<K, V>) => void): SHashMap<K, V>;
316
+ /**
317
+ * 对哈希表进行统计
318
+ * @param init 初始值
319
+ * @param func 统计函数
320
+ * @returns 结果
321
+ */
322
+ stat<O>(init: O, func: (accumulator: O, entry: SEntry<K, V>) => O): O;
323
+ }
324
+ export {};