0

異なる言語のフレーズを含む JSON がある場合:

var lang = {
    'topic' : {
        'en' : 'Topic',
        'et' : 'Teema',
        'fi' : 'Aihe'
    },
    'MainPage' : {
        'en' : 'Main page',
        'et' : 'Pealeht',
        'fi' : 'Pääsivu'
    }//,
    //...etc
};

特定の言語を選択するための関数を定義する方法:

function getText(lang, langKey) {
    //???????
    return langJson;
}

次のような同じフレーズを出力します。

getText(lang, 'en'); //outputs {topic:'Topic',MainPage:'Main page',..}
getText(lang, 'et'); //outputs {topic:'Teema',MainPage:'Pealeht',..}
getText(lang, 'fi'); //outputs {topic:'Aihe',MainPage:'Pääsivu',..}

頑張れ:私

4

1 に答える 1

3

基本的に、langオブジェクト全体を調べて、正しい言語の値を選択する必要があります。

Object.keysArray初期langオブジェクトのキーを含むを返します。それらを使用して、新しいオブジェクトを作成できます。for ループを使用してこれらのキーを反復処理し、対応する値を結果のオブジェクトに追加することもできますが、私はこれを使用するのが好きreduceです:

function getText(lang, langKey) {
  return Object.keys(lang).reduce(function(re, key) {
    re[key] = lang[key][langKey];
    return re;
  }, {})
}
于 2012-06-24T07:33:21.413 に答える