计算 2 个数组中每个位置的 return 距离

Calculate and return distances for each location in 2 arrays

我有 2 个包含位置的数组,我需要计算每个位置之间的距离。我试过了,但它 return 只有一个距离("Lusaka, Zambia" 到 "Kitwe, Zambia")。

var distance = require("google-distance-matrix");

let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];

exports.handler = (event, context, callback) => {
  var dists = pickups.map(function (p, d) {
    distance.matrix([p.address], [dropoffs[d].address], function(err, distances) {
      console.log(distances);
      // return distances;
    });
  });

};

如果this数组是这样的:

let pickups = [{"address": "Lusaka, Zambia"},{"address": "Kabwe, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];

我需要找到和 return 之间的距离:

我该如何解决这个问题?

您显然需要在循环中循环。像这样:

var distance = require("google-distance-matrix");

let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];

exports.handler = (event, context, callback) => {
  let allDistances = []
  for(let pickup of pickups){
     for(let dropoff of dropoffs){
       distance.matrix(pickup.address, dropoff.address], function(err, distances) {
         allDistances.push({p: pickup.address, d: dropoff.address, d: distances})
       });
     }
  }
  return allDistances
};