gpt4 book ai didi

javascript - 如何将 LatLng 对象与数组中的另一个对象进行比较?

转载 作者:行者123 更新时间:2023-11-28 01:34:06 24 4
gpt4 key购买 nike

我是 JavaScript 的初学者。最近我正在尝试在 Google Map 中开发关联应用程序。但是我遇到了一个奇怪的问题。

请引用下面的代码。

<html>
<head>
<script src = "http://maps.googleapis.com/maps/api/js"></script>
</head>

<body>
<script>

var buf = [];
var pos1 = new google.maps.LatLng(1, 2); buf.push(pos1);
var pos2 = new google.maps.LatLng(3, 4); buf.push(pos2);
var pos3 = new google.maps.LatLng(5, 6); buf.push(pos3);

//initialize a new object here
var pos4 = new google.maps.LatLng(3, 4);

if ( buf.indexOf(pos4) != -1 )
document.write("yes");
else
document.write("no");

</script>
<body>
</html>

因为 pos4 的值与 pos2 相同,所以如果数组中位置确实存在,打印结果应该是“yes”。 但是它在屏幕上打印“否”。

我尝试打印出 pos4pos2 的值。我发现两者是一样的,我不知道为什么这次检查失败了。 有什么办法可以解决问题吗?

最佳答案

根据Google Maps API V3 docs ,所有 LatLng 对象都有一个 equals 方法,您可以使用它来比较两个不同的 LatLng 对象:

var p1 = new google.maps.LatLng(3, 10),
p2 = new google.maps.LatLng(3, 10);

console.log(p1.equals(p2)); // logs "true"

关于javascript - 如何将 LatLng 对象与数组中的另一个对象进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com