【问题标题】: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()
    });

});

【问题讨论】:

    标签: javascript jquery arrays function frontend


    【解决方案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 访问它

      【讨论】:

      猜你喜欢
      • 2011-08-07
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多