[英]How to check if a newly created object is identical to an object inside of an array
我知道新声明的相同 object 仍然是不同的 object。 如何检查“点”数组是否包含与新 object 相同的任何 object
const Points = [{ "latitude": 47.590868, "longitude": -122.336729 },
{ "latitude": 47.601604, "longitude": -122.336042 },
{ "latitude": 47.608490, "longitude": -122.342410 },]
navigator.geolocation.getCurrentPosition((position) => {
var loc = [position.coords.latitude, position.coords.longitude]
var formattedLocation = {"latitude": loc[0], "longitude": loc[1]}
if(Points.includes(formattedLocation)){ //PROBLEM IS HERE.
console.log(Points.includes(formattedLocation)) // will always return false
// I WANT THIS TO BE TRUE IF formattedLocation object is similar to any OBJECT inside
of Points array
}
});
您可以使用JSON.stringify() ,它将您的 object 转换为字符串,然后您可以比较它
const obj1 = { "latitude": 47.590868, "longitude": -122.336729 } const obj2 = { "latitude": 47.590868, "longitude": -122.336729 } console.log(obj1 === obj2) // false console.log(JSON.stringify(obj1) === JSON.stringify(obj2)) // true
您不能直接比较两个对象。 .includes()
无法检查数组中的对象是否具有相同的 object。 您可以循环通过Points
数组来查找匹配项。
var inLocation = false;
Points.forEach(point=>{
if (point.latitude == formattedLocation.latitude && point.longitude == formattedLocation.longitude) inLocation = true;
})
if (inLocation) {
// Do your stuffs
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.