使用for循环为具有子对象的子项分配值不起作用

时间:2016-03-13 11:44:42

标签: javascript jquery json api loops

http://codepen.io/noczesc/pen/ZWppJQ

function codeToName(data) {
    for (var i = 0; i < data.country.borders.length; i++) {
        $.getJSON("https://restcountries.eu/rest/v1/alpha?codes=" + data.country.borders[i], function(json) {
            data.country.borders[i] = json[0].name;
            console.log(json[0].name);
        });
    }
};

我正在获取一系列国家/地区代码,这些代码应该通过codeToName循环和API更改为英语的完整表示形式,但它只会在数组的末尾附加一个随机名称。要获取它的console.log,请单击<body>。它位于JSONextract.country.borders中。通过API获取的国家/地区名称是正确的(也在控制台中登录),但它们不会被分配给我的对象中的变量。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

for不起作用,您应该使用$.each

function codeToName(data) {
  $.each(data.country.borders, function(index,item){
      $.getJSON("https://restcountries.eu/rest/v1/alpha?codes=" + item, function(json) {
          data.country.borders[index] = json[0].name;
          console.log(json[0].name);
      });
  });
};