1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| // @ts-nocheck
| /**
| * 生成一个数字范围的数组
| * @param start 范围的起始值
| * @param end 范围的结束值
| * @param step 步长,默认为 1
| * @param fromRight 是否从右侧开始生成,默认为 false
| * @returns 生成的数字范围数组
| */
| export function range(start : number, end : number, step : number = 1, fromRight : boolean = false) : number[] {
| let index = -1;
| // 计算范围的长度
| let length = Math.max(Math.ceil((end - start) / step), 0);
| // 创建一个长度为 length 的数组
| // #ifdef APP-ANDROID
| const result = Array.fromNative(new IntArray(length.toInt()));
| // #endif
| // #ifndef APP-ANDROID
| const result = new Array(length);
| // #endif
|
| // 使用循环生成数字范围数组
| let _start = start
| while (length-- > 0) {
| // 根据 fromRight 参数决定从左侧还是右侧开始填充数组
| result[fromRight ? length : ++index] = _start;
| _start += step;
| }
| return result;
| }
|
|
| // 示例
| // console.log(range(0, 5)); // 输出: [0, 1, 2, 3, 4]
| // console.log(range(1, 10, 2, true)); // 输出: [9, 7, 5, 3, 1]
| // console.log(range(5, 0, -1)); // 输出: [5, 4, 3, 2, 1]
|
|