如何从谷歌地图 API 中的字符串数组中获取整数



这个谷歌地图 api 'for loop' 以字符串形式返回旅程的持续时间(在本例中最后一行返回"34 分钟"(。

for (var i = 0; i < originList.length; i++) {
  var results = response.rows[i].elements;
  geocoder.geocode({
    'address': originList[i]
  },
  showGeocodedAddressOnMap(false));
    for (var j = 0; j < results.length; j++) {
      geocoder.geocode({
        'address': destinationList[j]
      },
      showGeocodedAddressOnMap(true));
      outputDiv.innerHTML += originList[i] + ' to ' + destinationList[j] + ': ' + results[j].distance.text + ' in ' + results[j].duration.text + '<br>';
    }
  }
}

我是否有机会只从results[j].duration.text;中获取数值并将它们用作整数?最终目标是在一个简单的S = V/t公式中使用持续时间。

根据 https://developers.google.com/maps/documentation/directions/intro,.text将提供人类可读的输出(包括测量单位(,但值在.value中。

所以results[j].duration.value应该这样做。

查看 JavaScript 的parseInt函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

尝试执行应仅为您提取整数值的parseInt(results[j].duration.text)。如果你想要一个小数,也有parseFloat

谢谢你们!

我尝试使用 result[j].duration.value,但它似乎返回的值与事实不符。

我以另一种方式解决了它,即: // Takes only digits from distance string and combine them together onlyNumbers = results[j].distance.text.replace(/[^d.-]/g, ''); //Convert string to integer var makeMeInt = parseInt(onlyNumbers);

我注意到必须从 .text 中删除所有不是数字的内容才能使 parseInt 正常工作。

最新更新