const findNthDigit = function (n) { var digit = 1; //数字个数 var count = 9; //当前位数的总数,1-9 var startNum = 1; while (n > count) { n -= count; // 第几个数字,去掉之前的 位数个数。比如第200, 200 - 189 = 11,及第三位数开始的序列的第11个数字 startNum = startNum * 10; digit++; count = startNum * 9 * digit; // 两位数字,10-99有90个,90*2=180 } // digit 是目前几位数, tmp 是当前顺序的真正数字, n 表示 当前位数的偏移量 var tmp1 = Math.ceil(n / digit); // 第几个 n 位数 var tmp = startNum + tmp1 - 1; // var tmp2 = String(tmp).length - (n % digit) - 1; var tmp3 = n - digit * (tmp1 - 1) - 1; // tmp - startNum 有多少个数字,再乘以长度 digit ,求得多少个字符长度 return String(tmp).charAt(tmp3);};