javascript - 在 Javascript 中使用 Substring 创建一个对象

标签 javascript google-maps

好的,所以,我们的想法是创建一个包含来自谷歌地图 url 的纬度、经度和缩放级别数据的对象,非常简单:

function getMapData(url)
{
    let rawData = url.substr(url.search('@') +1, url.search('z')).split(',');
    const [lat,  lng,  zoom] = rawData;
    return {lat, lng, zoom};
}

现在,根据我有限的理解,这应该提取从 @ 到第一个 z 的所有内容,但我正在获取这样的对象:

网址示例:https//www.google.com.ar/maps/place/Central+Park/@40.7828647,-73.9675491,17z/data=!3m1!4b1!4m5!3m4!1s0x89c2589a018531e3:0xb9df1f7387a94119 !8m2!3d40.7828647!4d-73.9653551?hl=en

对象创建:

{
    lat: 40.7828647,
    lng: -73.9675491,
    zoom: 17z/data=!3m1!4b1!4m5!3m4!1s0x89c2589a018531e3:0xb9df
}

所以我的问题是:为什么zoom值是这样的,为什么不停在字母z处?

fiddle : https://jsfiddle.net/1yt5qnwf/4/

最佳答案

如果你勾选documentation , substr 期望:

str.substr(start[, length])

你真正想要的是substring ,期望:

str.substring(indexStart[, indexEnd])

关于javascript - 在 Javascript 中使用 Substring 创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45286500/

相关文章:

javascript - 如何在 JQGrid 中按行排序?

java - 有没有办法更改 Android 上的 Google map 背景?

google-maps - 以编程方式在 Google map 上下载离线区域

google-maps - 如何从 Flutter-web 中的小部件创建图像?

javascript - 谷歌地图街景全景选项

java.sql.Date 的 JavaScript 正则表达式

javascript - `return await promise` 和 `return promise` 之间的区别

javascript - dynatable.js 与 dataTable.js

google-maps - Polymer,如何打开/关闭 google-map-marker InfoWindow?

javascript - 如果在移动设备上查看则显示弹出窗口