代码之家  ›  专栏  ›  技术社区  ›  matthausen

如何在google maps API中从字符串数组中获取整数?

  •  0
  • matthausen  · 技术社区  · 7 年前

    这个google maps 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 公式

    3 回复  |  直到 7 年前
        1
  •  0
  •   Steve Padmore    7 年前

    根据 https://developers.google.com/maps/documentation/directions/intro 这个文本将提供人类可读的输出(包括测量单位),但值为。价值

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

        2
  •  0
  •   pkuzhel    7 年前

    查看JavaScript parseInt 功能: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

    试着去做 parseInt(results[j].duration.text) 这应该只为您提取整数值。还有 parseFloat 如果你想要一个小数点。

        3
  •  0
  •   matthausen    7 年前

    谢谢大家!

    我试过了,结果很好。期间但它似乎返回的值与事实不符。

    我用另一种方法解决了这个问题: // 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);

    我注意到所有不是数字的东西都必须从中删除。parseInt正常工作的文本。