在 JavaScript 中查找范围内的连续数字

连续数字编号

当且仅当数字中的每个数字都比前一个数字多一位时,数字具有连续数字。

问题

我们需要编写一个 JavaScript 函数,该函数接受一个数组 arr,该数组由两个指定范围的元素组成。

我们的函数应该返回一个排序数组,其中包含范围 arr(包括限制在内)中具有连续数字的所有整数。

例如,如果函数的输入是 -

const arr = [1000, 13000];

那么输出应该是 -

const output = [1234, 2345, 3456, 4567, 5678, 6789, 12345];

示例

此代码将是 -

const arr = [1000, 13000];

const sequentialDigits = ([low, high] = [1, 1]) => {

   const findCount = (num) => {

      let count = 0;

      while(num > 0){

         count += 1

         num = Math.floor(num / 10)

      };

      return count;

   };

   const helper = (count, start) => {

      let res = start;

      while(count > 1 && start < 9){

         res = res * 10 + start + 1;

         start += 1;

         count -= 1;

      };

      if(count > 1){

         return 0;

      };

      return res;

   };

   const count1 = findCount(low);

   const count2 = findCount(high);

   const res = [];

   for(let i = count1; i <= count2; i++){

      for(let start = 1; start <= 8; start++){

         const num = helper(i, start);

         if(num >= low && num <= high){

            res.push(num);

         };

      };

   };

   return res;

};

console.log(sequentialDigits(arr));

输出结果

控制台中的输出将是 -

[

   1234, 2345,

   3456, 4567,

   5678, 6789,

   12345

]

以上是 在 JavaScript 中查找范围内的连续数字 的全部内容, 来源链接: utcz.com/z/361300.html

回到顶部