目前我正在从设备坐标(纬度,经度)和存储推动他们在一个数组是类似以下内容:的JavaScript - 查找并删除重复有条件
[35.23223,-5.293222]
不过,在几次这些坐标得到复制(也许是设备发送相同COORDS,等...)
对于这一点,我已经实现了以下:
var uniqueCoords = [Array.from(new Set(coords))];
其中在每次调用,挖到现有的数组中并删除任何重复的坐标。
但是,这会导致严重的问题,尤其是在有(例如)新纬度和旧经度(即[35.23223,-5.319399])或反之亦然时。
在这个特殊的例子uniqueCoords
将深入到阵列发现35.23223
被复制和删除,并会留下-5.319399
独自一人,由旅程可能结束其结束:
[35.23223,-5.293222,-5.319399]
我想在这里什么只有当两者对(lat & long)与数组中已存在的一对完全相同时才去除(经纬/长整数)。
当前代码:
this.storage.get('route').then((route) => {
let uniqueCoords: any = [Array.from(new Set(route))];
uniqueCoords.push(latLng.lat, latLng.lng);
this.storage.set('routeTaken', uniqueCoords);
}).catch((error) => {
this.presentAlert(error)
})
阵列的原始数据:
[35.7790733,-5.8453983,35.779335,-5.8465283,35.779705,-5.84782,35.7787533,-5.8482083,35.7780167,-5.8491983,35.77782,-5.8504883,35.7774783,-5.8518267,35.776955,-5.852945,35.7765,-5.8541383,35.7761667,-5.855425,-5.8566467,35.77628,-5.8579367,35.7763233,-5.8588633,35.776435,-5.8591367,35.7767667,-5.8594817,35.7776267,-5.8586933,35.7785467,-5.8577233,-5.8585467,35.77949,-5.8597567,35.7797183,-5.86081,35.7805917,-5.8606533,35.7817533,-5.8606867,35.7826217,-5.8618667,35.78295,-5.8636367,35.7834217,-5.8643667]
所以每次你是推2个单元没有华丽的狗屎呢? lat和long – marvel308
是的,确切的! –
你可以在数组中插入数组吗?所以你可以使用[[35.3,-5.2],[32.2,-5.9]]等等来保持对,这会使得它比只填充数字的数组更具可读性 – adeneo