先週の面接のテーマです.数字を漢字に変換しました.

8462 ワード

題目は数字を漢字に変換して表しています.例えば10245を一碗245(js実現)に変えます.
考え方:
  • 数字=>文字列
  • 文字列対応数字=>漢字(特にここでは挿入順が正常と正反対であることに注意してください.順序を逆転して処理します.)
  • 漢字に数値単位(万/千/百…)を挿入する
  • は、連続してゼロを処理する
  • .
        handleNumberToChinese = (num) =>{
          let arr1 = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '];
          let arr2 = ['', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' '];
          var arr = num;
          let newArr = arr.toString().split('');
          console.log(newArr);
          let result = '';
          for(let i = 0 ; i < newArr.length ; i++ ){
            result = arr2[i] + result;
            let reverse = newArr.length - i -1; //    
            let arr1_index = newArr[reverse];
            result = arr1[arr1_index] + result;
          }
            result = result.replace(/ ( | | )/g, ' ').replace(/  /g, ' ');
            result = result.replace(/ +/g, ' ');
            result = result.replace(/  /g, ' ').replace(/  /g, ' ');
            result = result.replace(/  /g, ' ');
            result = result.replace(/ +$/, '');
            result = result.replace(/^  /g, ' ');
            return result;
          }