SOURCE

// 按照以下规则可以生成一个数列。

// '1',第一个是1
// '11',前一个数包含1个1
// '21',前一个数包含2个1
// '1211',前一个数包含1个2,1个1
// '111221',前一个数包含1个1,1个2和2个1
// '312211',前一个数包含3个1,2个2和1个1
// ....
// 也就是说通过计数前面的数字可以得到下一个数。

// 请实现getNthNum(n)来返回该数列中的第n个数,n从1开始。

function getNthNum(n) {
   if(n === 1) return '1';

   let res = '1';

   for(let i = 2;i <= n;i++) {
       let count = 1;
       let temp = '';

       for(let j = 0;j< res.length;j++) {
           if(res[j] === res [j + 1]) {
               count +=1;
           }else {
               temp += `${count}${res[j]}`;
               count = 1;
           };
       };

       res = temp;
   };

   return res;
};

console.log('test',getNthNum(6));
console 命令行工具 X clear

                    
>
console