数组[0]未定义

时间:2017-05-19 22:33:57

标签: javascript arrays object multidimensional-array postal-code

当我输出我的代码时,我得到了这个输出:

0[object Object]

1[object Object]

我相信这是因为它是一个对象。虽然我很漂亮,但我相信一个对象就是一个数组。如果那是错的,请纠正我。

我在控制台中注意到了这个对象:

Objectresult: Objectadmin_county: "Somerset"admin_district: "Sedgemoor"admin_ward: "Axevale"ccg: "NHS Somerset"codes: Objectcountry: "England"eastings: 343143european_electoral_region: "South West"incode: "2WL"latitude: 51.2870673059808longitude: -2.81668795540695lsoa: "Sedgemoor 001A"msoa: "Sedgemoor 001"nhs_ha: "South West"northings: 154531nuts: "Somerset"outcode: "BS26"parish: "Axbridge"parliamentary_constituency: "Wells"postcode: "BS26 2WL"primary_care_trust: "Somerset"quality: 1region: "South West"__proto__: Objectstatus: 200__proto__: Object

看起来可能更整洁:https://api.postcodes.io/postcodes?lon=0.080647&lat=51.626281000000006&radius=115

我试图将这些部分分成存储为变量的可用项。我试过array[0],但那是undefined。我认为这意味着我需要做更像object(array[0])

的事情

我一直在寻找,但我无处可去。

这是我从其他地方分发的完整代码。

$(window).ready(function() {
  $(initiate_geolocation);
});

function initiate_geolocation() {
  navigator.geolocation.getCurrentPosition(handle_geolocation_query);
}

function handle_geolocation_query(position) {
  var lat = position.coords.latitude;
  var lon = position.coords.longitude;
  var url = "https://api.postcodes.io/postcodes?lon=" + lon + "&lat=" + lat + "&radius=125";
  post(url).done(function(postcode) {
    displayData(postcode);
    // console.log("postcode says: "+postcode);
    console.log(postcode[0[1]]);
  });
}

//display results on page
function displayData(postcode) {
  var html = "";
  $('#text').hide();
  for (var index in postcode['result']) {
    html += "<div class='row'>";
    html += "<div class='cell'>";
    html += index.replace(/_/g, ' ').strFirstUpper();
    html += "</div><div class='cell'>";
    html += postcode['result'][index];
    html += "</div></div>";
    console.log(postcode)
  }
  $('#text').html(html).fadeIn(300);
}

//ajax call
function post(url) {
  return $.ajax({
    url: url,
    success: function() {
      //woop
    },
    error: function(desc, err) {
      $('#text').html("Details: " + desc.responseText);
    }
  });
}

//uppercase 
String.prototype.strFirstUpper = function() {
  return this.charAt(0).toUpperCase() + this.slice(1);
}
@import url(//fonts.googleapis.com/css?family=Roboto);
html {
  font-family: 'Roboto', sans-serif;
}

.header {
  position: fixed;
  z-index: 10;
  width: 100%;
  background: -moz-linear-gradient(90deg, #394D66, #3A5B85);
  background: linear-gradient(90deg, #394D66, #3A5B85);
  height: 80px;
  min-width: 500px;
}

h1 {
  font-weight: 400;
  text-align: center;
  margin: 0px;
  font-size: 1.5em;
  color: #9DC3EB;
  text-transform: uppercase;
}

h1 span {
  font-size: 0.8em;
  text-transform: lowercase;
  color: #E0E0E0;
}

.row {
  width: 100%;
  font-size: 1.2em;
  padding: 5px 0px;
  border-bottom: 1px solid #ccc;
}

.inputHolder {
  width: 100%;
  font-size: 20px;
  text-align: center;
}

.inputHolder input {
  text-align: center;
  color: #333;
}

.cell {
  display: inline-block;
  width: 49%;
  color: #393939;
}

.row .cell:first-child {
  text-align: right;
  padding-right: 10px;
}

.row:hover {
  background: #ccc;
}

#text {
  z-index: 0;
  padding: 90px 0px;
  width: 60%;
  margin: 0px auto;
  min-width: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
<div class='header'>
  <h1><span>Postcode Seach with</span> Postcodes.io</h1>
  <!-- <div class='inputHolder'>
    <input placeholder='Postcode' type='text' id='txtPostcode'/>
    <input type='button' value='Search' id='btnPostcode'/>
  </div>
  -->
</div>


<div id='text'></div>

最终,我希望此代码在您打开页面时找到允许发现您的位置,然后找到您的邮政编码(使用postcode.io)。我的大部分路都在那里,但我的顽皮却伤害了我。非常感谢任何帮助。

代码必须是https才能运行地理位置。

0 个答案:

没有答案