hodgef
BAN USERJavascript:
let links = Array.from(document.querySelectorAll('a'));
let linkCoords = links.map(link => {
let rect = link.getBoundingClientRect();
return [rect.x, rect.y];
});
document.addEventListener("click", ev => {
let distances = [];
linkCoords.map(linkCoord => {
let distance = Math.hypot(linkCoord[0]-parseInt(ev.clientX), linkCoord[1]-parseInt(ev.clientY));
distances.push(parseInt(distance));
});
let closestLinkIndex = distances.indexOf(Math.min(...distances));
console.log(links[closestLinkIndex]);
});
Javascript solution.
Basically:
- The origin city cannot possibly be a destination city.
- The destination city cannot possibly be a origin city.
Therefore:
const flights = [
['B', 'C'],
['E', 'F'],
['C', 'D'],
['D', 'E'],
['A', 'B'],
];
const findRoute = flights => {
let sources = [];
let destinations = [];
flights.map((flight, index) => {
sources.push(flight[0]);
destinations.push(flight[1]);
});
let sourceFlight = sources.filter(source => !destinations.includes(source))[0];
let destinationFlight = destinations.filter(destination => !sources.includes(destination))[0];
console.log(sourceFlight, destinationFlight);
};
findRoute(flights);
Javascript:
- hodgef December 18, 2017