将两个字母的国家代码与预定义的国家代码数组匹配

Posted

技术标签:

【中文标题】将两个字母的国家代码与预定义的国家代码数组匹配【英文标题】:Match the two letter country code to predefined array of country code 【发布时间】:2013-08-03 09:31:09 【问题描述】:

我正在尝试使用 javascript 获取用户当前位置的国家代码。有了代码,我将获得两个字母的国家/地区代码,然后我需要将这两个字母的国家/地区代码与我的预定义数组匹配以获取三个字母的国家/地区代码。

下面是我的代码,但是一旦我为三个字母的国家代码添加了我的预定义数组内容,它就无法正常工作。我的警报框现在都没有工作。

<html>
    <head>
        <title>Get web visitor's location</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>

    var threeLtrCC.US = 'USA';
    var threeLtrCC.IN = 'IND';

$(document).ready( function() 

    $.getJSON( "http://smart-ip.net/geoip-json?callback=?",
        function(data)
            alert( data.countryCode);
            var cc = threeLtrCC[data.countryCode];
            var countryCode=data.countryCode

            alert(cc);
            $('#newURL').attr('href','https://www.google.com&jobid='+countryCode);
        
    );
); 

    </script>

    </head>
    <body>
<hr/>

<a id="newURL">url</a>

    </body>
</html>

它没有提醒我任何东西。假设如果国家代码是美国,那么它应该与我的预定义数组匹配并打印为美国。

我做错了什么?

【问题讨论】:

请查看JavaScript error console 并告诉您在那里看到的错误以及它们指向的行。 你不应该在分配它的数组值之前声明 threLtrCC 吗?像 var threLtrCC = , threLtrCC.US = 'USA'; 您遇到了什么错误? 【参考方案1】:

您似乎用这一行声明了两个变量:

var threeLtrCC.US = 'USA';
var threeLtrCC.IN = 'IND';

不向名称为 threeLtrCC 的对象添加任何内容。你必须声明threeLtrCC,然后:

var threeLtrCC = 
threeLtrCC.US = 'USA';
threeLtrCC.IN = 'IND';

甚至

var threeLtrCC = "US": 'USA', "IN" : 'IND'

演示:http://jsbin.com/ucifup/1/edit

【讨论】:

【参考方案2】:

这是错误的

var threeLtrCC.US = 'USA';
var threeLtrCC.IN = 'IND';

你不能声明一个对象的属性

var threeLtrCC=IN:"IND",US:"USA";

【讨论】:

以上是关于将两个字母的国家代码与预定义的国家代码数组匹配的主要内容,如果未能解决你的问题,请参考以下文章

根据每个国家/地区的预定义份额将固定价值拆分到国家/地区

WP 8.1 : 通过区域两个字母代码或国家数字代码获取县名

将经度和纬度与 R 中的国家/地区匹配

将国家代码发送到 MailChimp for Woocommerce

有没有办法使用(仅)国家代码(有效的 ISO-3166 代码)获得时区?

c语言,输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。