2016-04-29 3 views
1

countryCodeをキーに、国名を値として持つcountriesという配列から国名を取得しようとしています。私は、データベースへのajax呼び出しの結果から国コードを抽出しています。私は国のコードを取得するとき、私は国の配列をスキャンし、国のコードと一致する値を取得する必要があります。各国語コードを抽出した国コードを使用して配列から国名を取得

ご協力いただきありがとうございます。 jqueryを解決するための外部ライブラリはありません。 javascriptしてください。ここで

は、これを解決する私の試みである:ここでは

function getAllDistributors(){ 
    $j.ajax({ 
     url: '<?php echo Mage::getBaseUrl(); ?>distributor/index/getAllDistributors', 
     type: "GET", 
     success: function(data) { 
      //console.log(data.map(JSON.parse)); 
      results = JSON.parse(data); 
      console.log(results.distributers); 
      var distributors = results.distributers; 
      distributors.forEach(function(distributor){ 
       var countryCode = distributor.country_code; 
       console.log(countryCode); 
       // returns each country code ex. 'us' 
      }); 

      //var countryName = results['country']; 
      //var distributor = results['distributers']; 
     } 
    }); 
} 

は、オブジェクトの国々の配列です:

var countries = [ 
    {'AT': 'Austria'}, 
    {'BU': 'Bulgaria'}, 
    {'CZ': 'Czech Republic'}, 
    {'DK': 'Denmark'}, 
    {'EE': 'Estonia'}, 
    {'FI': 'Finland'}, 
    {'FR': 'France'}, 
    {'DE': 'Germany'}, 
    {'HU': 'Hungary'}, 
    {'IE': 'Ireland'}, 
    {'IT': 'Italy'}, 
    {'NL': 'Netherlands'}, 
    {'NO': 'Norway'}, 
    {'PL': 'Poland'}, 
    {'PT': 'Portugal'}, 
    {'RM': 'Romania'}, 
    {'SI': 'Slovenia'}, 
    {'ES': 'Spain'}, 
    {'SE': 'Sweden'}, 
    {'CH': 'Switzerland'}, 
    {'TR': 'Turkey'}, 
    {'GB': 'United Kingdom'}, 
    {'CA': 'Canada'}, 
    {'MX': 'Mexico'}, 
    {'PR': 'Puerto Rico'}, 
    {'US': 'USA'}, 
    {'AR': 'Argentina'}, 
    {'BR': 'Brazil'}, 
    {'AU': 'Australia'}, 
    {'IN': 'India'}, 
    {'MY': 'Malaysia'}, 
    {'NZ': 'New Zealand'}, 
    {'CN': 'People\'s Republic of China'}, 
    {'SG': 'Singapore'}, 
    {'SK': 'South Korea'}, 
    {'TW': 'Taiwan'}, 
    {'UA': 'United Arab Emirates'} 
]; 
+2

「countries」配列は恐ろしい構造なので変更できますか?それをキーでオブジェクトにしてください。あなたがする必要があるのは 'countries [countryCode]' – adeneo

+0

です。はい、できます。どのようにそれを構築しますか? –

+0

Nm、あなたはすでに言及しました。ありがとうございました –

答えて

1

あなたはフィルタを使用して

countries.filter(a=> a.hasOwnProperty(countryCode.toUpperCase()) ? a : null)

1
プロパティを確認することができます

ここで、私は@adeneoに感謝の気持ちでいった答えがあります。他の人の助けにも感謝します。

function getAllDistributors(){ 
    $j.ajax({ 
     url: '<?php echo Mage::getBaseUrl(); ?>distributor/index/getAllDistributors', 
     type: "GET", 
     success: function(data) { 
      //console.log(data.map(JSON.parse)); 
      results = JSON.parse(data); 
      console.log(results.distributers); 
      var distributors = results.distributers; 
      distributors.forEach(function(distributor){ 
       var cc = distributor.country_code.toUpperCase(); 
       countryCode = cc.replace("\\s+",""); 
       console.log(countries[countryCode]); 
      }); 

      //var countryName = results['country']; 
      //var distributor = results['distributers']; 
     } 
    }); 
} 

国の配列については、私は代わりにキーを持つオブジェクトを作成しました。

var countries = {'AU': 'Australia', 'US': 'United States'}; 
関連する問題