複製 Intl.NumberFormat 的參數
前言
Intl.NumberFormat 在初始化時可以輸入很多參數,如果需要用同樣的參數但不同的地區該如何達成? Intl.NumberFormat 有提供複製參數的方法,在此把學習的過程做個紀錄。
內容
範例如下
let numFormatUS = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD", maximumFractionDigits: 2, roundingIncrement: 5, roundingMode: "halfCeil", }); let options = numFormatUS.resolvedOptions(); console.log( options.locale );//en-US console.log( options.currency );//USD // let numFormatTW = new Intl.NumberFormat( "zh-TW",options ); console.log( numFormatUS.format(10) );//$10.00 console.log( numFormatTW.format(10) );//US$10.00 // console.log( numFormatTW.format(10.255) );//US$10.25
複製參數是透過 Intl.NumberFormat.resolvedOptions() ,回傳值是個 Object ,裡面有全部的參數,範例分別顯示了 locale 與 currency ,接著進行複製,複製時發現參數本身有 locale ,但初始化的第一個參數也是 locale ,哪會以哪個為主?結果是以初始化的第一個參數為主,回傳的 option 只是拿來讀取的,在複製時不會有作用,最後用顯示 10.255 來檢測 maximumFractionDigits 有沒有確實被複製,結果正確。
沒有留言:
張貼留言