【问题标题】:Check duplicates latitudes and longitudes检查重复的纬度和经度
【发布时间】:2017-05-03 09:15:38
【问题描述】:

我正在尝试使用我在此处的某个线程中找到的代码。

var values= [{lat: 12345, lng: 54321},{lat: 98765, lng: 54321}, {lat: 99999, lng: 111111} ]

let seen = new Set();
var hasDuplicates = values.some(function(currentObject) {
    return seen.size === seen.add(currentObject.lng).size;
});
console.log(hasDuplicates)

它说这是真的,但这并不是因为它只检查经度是否单独存在而不是纬度。

我该怎么做?

【问题讨论】:

  • 你能解释一下预期的结果是什么吗?
  • 它在控制台日志中说这是真的,但它应该打印错误,因为没有纬度和经度重复(在同一个 obj 中)

标签: javascript latitude-longitude


【解决方案1】:

简单的解决方案,将currentObject 转换为字符串表示形式并将其用作设置值。

seen.add(currentObject.lat + " " + currentObject.lng)

var values= [{lat: 12345, lng: 54321},{lat: 12345, lng: 54321}, {lat: 99999, lng: 111111} ]

let seen = new Set();
var hasDuplicates = values.some(function(currentObject) {
    return seen.size === seen.add(currentObject.lat + " " + currentObject.lng).size;
});
console.log(hasDuplicates)

【讨论】:

  • 不,这不起作用,因为如果我将值数组更改为: var values= [{lat: 12345, lng: 54321},{lat: 12345, lng: 54321}, { lat: 99999, lng: 111111} ] 它会说 false 但是第一个和第二个元素是重复的
  • 我只是运行代码,它为我显示true,我用代码编辑答案。
  • 这是字符串末尾的大小,很好 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 2013-02-23
相关资源
最近更新 更多