2017-11-15 8 views
0

これはJSライブラリ(PLN、EURなど)の最後の値に基づいてJSライブラリから通貨レートを取得する単純な通貨変換スクリプトです - >オブジェクトのプロパティにアクセスするための引数の値を使用

var priceAmount = amount; 
    var currencyRateUSDPLN = Currency.rates.PLN; 

私は関数の引数をCurrency.rates.PLNに直接渡すことができないことを知っていますが、この機能を実現するための最短の方法は何ですか?

function convertCurrency (amount, to) { 
    var priceAmount = amount; 
    // here I want to pass 'to' argument (EUR, PLN for example) 
    var currencyRateUSDPLN = Currency.rates.to; 
    var pricePLN = (priceAmount/currencyRateUSDPLN).toFixed(2); 
    console.log(pricePLN + ' PLN'); 
} 

通貨オブジェクトが含まれています - >link

+1

'Currency.rates.PLN'は何ですか? – gurvinder372

+0

JSライブラリから通貨レートを返します。値は約0.27 –

+0

です。「Currency.rates」オブジェクトに含まれるものがわからなければ、あまり役に立たないですが、 'var currencyRateUSDPLN = Currency.rates.to ; '' Currency.rates.PLN; 'を関数に渡すのと同じように '' var currencyRateUSDPLN = to; 'にするだけですか? – George

答えて

3

を、私はあなたが尋ねるしようとしている問題は、どのようにオブジェクトのプロパティにアクセスするには、引数の値を使用することができていると仮定しています。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors

function convertCurrency (amount, to) { 
    var priceAmount = amount; 
    // here I want to pass 'to' argument (EUR, PLN for example) 

    var currencyRateUSDPLN = Currency.rates[to]; 
    // If 'to' argument passed in is "EUR" then this 
    // will resolve to Currency.rates.EUR 

    var pricePLN = (priceAmount/currencyRateUSDPLN).toFixed(2); 
    console.log(pricePLN + ' PLN'); 
} 
+0

うわー!素晴らしい!今私は彼が何を意味するのか理解することができます! – skyboyer

+0

ありがとう!私はこれを正確に意味しました:)あなたの提案の質問タイトルを変更します。問題が解決しました! –

1

これを行う方法は、角括弧([])を介してto値を補間することである。

あなたは、この使用してブラケット表記を行うことができます。だから、:

Currency.rates[to] 

はまた、代わりに、関数に文字列を渡すと、それらを補間する、あなただけの直接通貨レートの参照を渡すことができます。

function convertCurrency (amount, to) { 
    console.log((amount/to).toFixed(2) + ' PLN'); 
} 

convertCurrency(34.56, Currency.rates.PLN) 
関連する問題