【发布时间】:2021-10-26 19:32:41
【问题描述】:
我正在尝试从以下数组中获取匹配项,比较浏览器中的坐标与数组上的坐标,但是当我调用 const 'matchgeosucursal' 时,即使我强制条件,我也会得到一个 'undefined' 值要匹配的过滤器,这段代码的目的是获取匹配场景的URL,我认为我使用过滤器功能错误。
//Request permissions
$( document ).ready(function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
console.log ("Geolocation is not supported by this browser.");
}
//Filter and gets match url
function showPosition(position) {
console.log("Latitude: " + position.coords.latitude)
console.log("Longitude: " + position.coords.longitude);
var navlat = position.coords.latitude; //Browser lat
var navlon = position.coords.longitude; // Browser lon
// Array
var sucursales = [
{lat: 21.924089, lon: -102.293378, url: "https://shorturl.at/test1"},
{lat: 21.859964, lon: -102.298034, url: "https://shorturl.at/test2"},
{lat: 32.45569, lon: -116.836181, url: "https://shorturl.at/test3"},
{lat: 24.114868, lon: -110.340389, url: "https://shorturl.at/test4"},
{lat: 21.0335386, lon: -89.559187, url: "https://shorturl.at/test5"}];
//Match result
const matchgeosucursal = sucursales.filter( sucursales => sucursales.lat === navlat && sucursales.lon === navlon);
console.log('Match> ' + matchgeosucursal);
}
});
【问题讨论】:
-
navlat和navlon的实际 值是多少? -
是的,我想通了,但是这些变量的 实际 值是多少(例如,多少)。如果没有匹配的结果将是一个空数组。
-
它的变量,我用的是隐私测试值,应该是浏览器请求的lattitude(navlat)和longitud(navlon),应该匹配最后一个场景:lat: 21.0335386, lon :-89.559187。
-
另外,我想你应该返回
matchgeosucursal,而不是仅仅记录它。
标签: javascript filter geolocation