Javascript console.log()显示数组元素,但无法访问元素

时间:2019-08-06 13:11:53

标签: javascript arrays

当我用console.log()我的代码时,我可以查看我的数据,但是当我尝试访问它时,该数据是未定义的并且数组长度为0。我进行了测试,我知道将正确的信息推送到了数组上每次迭代。

$(document).ready(async function() {
  var formattedAddress = [];
  var lat1 = [];
  var lng1 = [];
  var Formatted = [];

  //Get Json Data
  function start() {
    const request = new XMLHttpRequest();
    request.open('get', 'Addresses.json');
    request.send();
    request.onload = () => {
      try {
        const json = JSON.parse(request.responseText);

        for (var k = 0; k < json.Addresses.length; k++) {
          axios.get('https://maps.googleapis.com/maps/api/geocode/json', {
              params: {
                address: json.Addresses[k].content,
                key: 'AIzaSyCEnAi46n51grggeqrwew33f28'
              }
            })
            .then(function(response) {
              // Formatted Address
              formattedAddress.push(response.data.results[0].formatted_address);
              lat1.push(response.data.results[0].geometry.location.lat);
              lng1.push(response.data.results[0].geometry.location.lng);
            }).then(function(response) {
              return response;
            })
        }
      } catch (e) {
        console.log("Could not Load Data!!");
      }
    };
  }

  await start();

  console.log(formattedAddress);
  console.log(formattedAddress.length);
  console.log(formattedAddress[0]);

});

实际结果:

[]
   0: "Edina, MN, USA"
   1: "Stillwater, MN 55082, USA"
   2: "Roseville, MN 55113, USA"
   3: "St Paul, MN, USA"
   4: "4855 Bloom Ave, White Bear Lake, MN 55110, USA"
   5: "Maple Grove, MN, USA"
   length: 6
   __proto__: Array(0)

0

Undefined

预期结果:

[]
   0: "Edina, MN, USA"
   1: "Stillwater, MN 55082, USA"
   2: "Roseville, MN 55113, USA"
   3: "St Paul, MN, USA"
   4: "4855 Bloom Ave, White Bear Lake, MN 55110, USA"
   5: "Maple Grove, MN, USA"
   length: 6
   __proto__: Array(0)


6

"Edina, MN, USA"

0 个答案:

没有答案