Я пытаюсь решить задачу, которая вычисляет наибольшее расстояние между любыми двумя точками.
Я ожидаю, что выходные данные рассчитают исходную и целевую пары, которые имеют наибольшее пройденное расстояние.
obj = [{
source: a,
destination: b,
distance: 200
},
{
source: b,
destination: a,
distance: 100
},
{
source: a,
destination: c,
distance: 100
}
]
В этом случае мой выходной сигнал будет самым высоким: Distance = [a, b, 300] (между a и b => 200 + 100 = 300)
Я пытаюсь написать функцию в JavaScript.какая структура данных будет здесь уместна?
Сначала я попытался создать карту и добавить кортеж [source, destination] в качестве ключа, например так:
{
[a, b]: 200,
[a, c]: 100
}
const obj = [{
source: a,
destination: b,
distance: 200
},
{
source: b,
destination: a,
distance: 100
},
{
source: a,
destination: c,
distance: 100
}
]
function highestDistance(obj) {
const highestPair = obj[0];
const myMap = new Map();
obj.forEach(pair => {
let [source, destination] = [pair.source, pair.destination];
if( myMap.has([source, destination]) || myMap.has([source, destination])){
myMap.set()
// not sure how to proceed and add the tuple to map here
// I intend to compare the current highest and update highestPair value if the current pair distance is collectively bigger.
} else {
myMap.set([source, destination], pair[distance])
}
})
return obj;
}
Ввод:
{
source: a,
destination: b,
distance: 200
},
{
source: b,
destination: a,
distance: 100
},
{
source: a,
destination: c,
distance: 100
}
Вывод:
[a, b, 300]
Не могли бы вы помочь мне решить эту проблему?Большое вам спасибо!