按纬度和液化天然气对对象数组中的对象进行分组和计数



我在Jquery中有以下数组,它正在绘制Google地图,我想做的是将相同的纬度和LNG坐标分组。 因此,在下面的示例中,前 4 个将被分组,后 2 个将被分组在一起

口音阵列

var markers = [
{
"title": 'Duncan-Desktop',
"lat": '-41.2283',
"lng": '174.8700',
"description": 'Duncan-Desktop'
},
{
"title": 'james-dev',
"lat": '-41.2283',
"lng": '174.8700',
"description": 'james-dev'
},
{
"title": 'james-laptop',
"lat": '-41.2283',
"lng": '174.8700',
"description": 'james-laptop'
},
{
"title": 'MX-MIC-1812-3-0000000105',
"lat": '-41.2283',
"lng": '174.8700',
"description": 'MX-MIC-1812-3-0000000105'
},
{
"title": 'MX-MIC-1812-3-0000000106',
"lat": '-42.5443',
"lng": '175.458',
"description": 'MX-MIC-1812-3-0000000106'
},
{
"title": 'MX-MIC-1812-3-0000000107',
"lat": '-42.5443',
"lng": '175.458',
"description": 'MX-MIC-1812-3-0000000107'
}

];

我基本上想要每个确切位置的计数输出,纬度和液化天然气,以及连接在一起的一串标题。

喜欢这个

var markers = [
{
"title": 'Duncan-Desktop, james-dev, james-laptop, MX-MIC-1812-3-0000000105',
"lat": '-41.2283',
"lng": '174.8700',
"count": '4'
},
{
"title": 'MX-MIC-1812-3-0000000106, MX-MIC-1812-3-0000000107',
"lat": '-42.5443',
"lng": '175.458',
"count": '2'
}
];

我已经尝试了几个每个循环,但还无法理解它。 任何帮助都会很棒

您可以通过Array.reduce进行分组,以便对由latlng组成的密钥进行分组,然后分别通过incrementing/concatenating获取count/title

const data = [{ "title": 'Duncan-Desktop', "lat": '-41.2283', "lng": '174.8700', "description": 'Duncan-Desktop' }, { "title": 'james-dev', "lat": '-41.2283', "lng": '174.8700', "description": 'james-dev' }, { "title": 'james-laptop', "lat": '-41.2283', "lng": '174.8700', "description": 'james-laptop' }, { "title": 'MX-MIC-1812-3-0000000105', "lat": '-41.2283', "lng": '174.8700', "description": 'MX-MIC-1812-3-0000000105' }, { "title": 'MX-MIC-1812-3-0000000106', "lat": '-42.5443', "lng": '175.458', "description": 'MX-MIC-1812-3-0000000106' }, { "title": 'MX-MIC-1812-3-0000000107', "lat": '-42.5443', "lng": '175.458', "description": 'MX-MIC-1812-3-0000000107' } ]
const result = data.reduce((r,{title, lat, lng, description}) => {
let key = `${lat}${lng}`
r[key] = r[key] || { title: '', lat, lng, count: 0 }
r[key].title = r[key].title.concat(' ', description)
r[key].count += 1
return r
}, {})
console.log(Object.values(result))

最新更新