如何访问函数外的数组元素

Posted

技术标签:

【中文标题】如何访问函数外的数组元素【英文标题】:How I can access to array element outside function 【发布时间】:2018-04-22 06:28:37 【问题描述】:

我想从函数外部访问 distancepos 元素。我该怎么做?

navigator.geolocation.getCurrentPosition(function(position) 
    var pos = 
        lat: position.coords.latitude,
        lng: position.coords.longitude
    ;
    //   console.log(getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng()));
    distance.push(
        dis: getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng()),
        lat: feature.position.lat(),
        lng: feature.position.lng()
    );

);

【问题讨论】:

【参考方案1】:

如果函数只是用作 setter,您可以在函数外部声明变量。

    var pos, distance;

    navigator.geolocation.getCurrentPosition(function(position) 
        pos = 
            lat: position.coords.latitude,
            lng: position.coords.longitude
        ;

        distance.push(
            dis: getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng()),
            lat: feature.position.lat(),
            lng: feature.position.lng()
        );

    );

【讨论】:

【参考方案2】:

不确定为什么要为此传递内联函数,但也许有原因?

为了从函数外部访问距离和位置,您需要return 他们。如果您想返回多个变量(如您的情况),我可能会创建一个对象并返回该对象:

return  pos: pos, distance: distance ;

在函数之外,您可以作为 object.pos / object.distance 访问它

【讨论】:

不知道为什么要为此传递一个内联函数 getCurrentPosition 需要一个

以上是关于如何访问函数外的数组元素的主要内容,如果未能解决你的问题,请参考以下文章

如何访问函数返回数组的元素?

Javascript在循环内推送元素,不会影响循环外的数组

除第一个元素外的所有元素的分段错误

访问数组元素

访问Fortran中返回数组的元素

从函数返回时访问数组元素