2017-10-02 19 views
-2

数字(1、2、3 ...)を中国語(一、二/两、三...)に変換しようとしています。中国語では、数字は[100] [10] [10] [ones]と書かれています。たとえば、243は2 [100] 4 [10] 3または三百四十三と書かれます。これを効率的に行う方法はありますか、または各数値を調べて配列で変換する関数を作成する必要がありますか?Javascript - アラビア語の数字を中国語の文字に変換する

ありがとうございます!

答えて

1

各桁の名前と数字の桁の名前の2つの配列のみが必要です。

var digits = [ 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' ] 
var positions = [ 'ones', 'tens', 'hundreds' ]; 

toWords = num => String(243).split('').reduce((acc, curr, index) => { 
    console.log(parseInt(curr)) 
    acc += digits[parseInt(curr)] + positions.reverse()[index] 
    return acc 
    }, "") 
console.log(toWords(243)) 

ような何かあなたが中国語の文字と英語の単語を持っていた場合、あなたが希望する結果

+0

にあなたのためのおかげで見ることができます回答。私は基本的に矢印機能については何も知っていません。ありがとう – Orion31

+0

基本的にNumberをStringにキャストし、それを '['2'、 '4'、 '3'] 'のような数字の配列に分割し、各桁を取り、桁の名前の配列を調べます。文字列 '2'を整数にキャストすると、2つの '2'に一致するようにルックアップの配列インデックスとして使用できます。 243の2の位置は数百ですが、配列reduceのインデックスは0なので、位置の配列を逆にしてインデックスの要素を取得します。 – kharhys

+0

ありがとうございました!私はついにその矢を理解する! – Orion31

1

を取得したいあなたはNumber.prototype.toLocaleString Using locales

console.log(123456.789.toLocaleString('zh-u-nu-hanidec')) // "一二三,四五六.七八九" 
 

 
console.log(123456.789.toLocaleString('zh-u-nu-FullWide')) // "123,456.789"

関連する問題