javascript - 推送到函数内的数组

标签 javascript arrays

我正在尝试为路由的起点/终点构建一个纬度和经度数组。

function parkRoute(){
    var start = $('#start').val();
    var end = $('#end').val();
    var points = [];
    function printPoints(points){
    console.log(points)
    }
    function getXY(add){
        geocoder.geocode( {'address': add + ", glendale, ca"}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[0].geometry.location) {
                    var lon = results[0].geometry.location.kb;
                    var lat = results[0].geometry.location.jb;
                    points.push(lat,lon);
                    console.log(points)
                }
            }
        })          
    }
    getXY(start);
    getXY(end);
    printPoints(points);
}

它首先打印出一个空数组,即使我在创建数组的函数之后调用另一个函数来打印它们。

[]                                      parks1.js:192

[34.1480811, -118.24759369999998]               parks1.js:201

[34.1480811, -118.24759369999998, 34.1851925, -118.27651679999997] parks1.js:201

我做错了什么?

最佳答案

推送之前打印数组内容。地理编码操作是异步的,因此您必须从异步回调中打印。

关于javascript - 推送到函数内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672924/

相关文章:

javascript - 不知道如何消除 MongoDB 中的重复键错误

javascript - 移动设备上的 jquery .click() 函数

javascript - NVD3折线图中的虚线

c++ - 动态 3d 数组的声明和分配

javascript - 从 json 文件中提取包含数组中值的项目

javascript - 从模态提交表单数据,模态不会关闭

javascript - JavaScript 网格中行之间的间隙

c - 在我的代码中的函数之间返回数组指针有问题吗?

c - 在初始化函数中传递数组地址

javascript - 在字符串对象上调用 .localeCompare 和构造一个专用的 Intl.Collat​​or 对象之间的性能差异?