navigator.geolocation.getCurrentPosition
является асинхронным.На момент выполнения ваших консольных операторов массив еще не был заполнен.Причина того, что в консоли регистрируется полный массив, заключается в том, что инструменты разработчика вашего браузера отображают указатель на объект массива, а не содержимое массива во время оператора консоли.
Есливы хотите убедиться, что у вас есть значения, предоставленные функцией getCurrentPosition
, вы должны поместить код, который полагается на них, в обратный вызов успеха:
window.onload = function getLocation() {
var userlocation = [];
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
function showPosition(position) {
userlatitude = position.coords.latitude;
userlongitude = position.coords.longitude;
userlocation.push(userlatitude);
userlocation.push(userlongitude);
console.log(userlocation[0]);
console.log(userlocation);
}
}