js 拿到下一个序列化整数

发布时间 2023-10-19 22:56:47作者: 万物有序
 1 function getNextInt(int) {
 2   const config = int.reverse().reduce(
 3     (config, digit) => {
 4       let sum = digit + config.increment,
 5         nextInt = config.nextInt,
 6         increment = 0;
 7 
 8       if (sum > 9) {
 9         nextInt.push(sum - 10);
10         increment = 1;
11       } else {
12         nextInt.push(sum);
13       }
14 
15       return {
16         increment,
17         nextInt,
18       };
19     },
20     { increment: 1, nextInt: [] }
21   );
22 
23   if (config.increment) {
24     config.nextInt.push(1);
25   }
26 
27   return config.nextInt.reverse();
28 }
29 
30 console.log(getNextInt([9, 9, 9])); // [1, 0, 0, 0]
31 console.log(getNextInt([9, 9, 9, 0])); // [9, 9, 9, 1]
32 console.log(getNextInt([9, 9, 9, 0, 1])); // [9, 9, 9, 0, 2]
33 console.log(getNextInt([9, 9, 9, 0, 9])); // [9, 9, 9, 1, 0]