Вместо массива расстояний до заданной точки достаточно хранить одно минимальное. При обработке элемента locations вычисляете расстояние, сравниваете с текущим минимальным, если оно всё ещё меньше - ничего не делаете, в противном случае запоминаете новое минимальное и соответствующий ему элемент массива locations:
const getTheNearestLocation = (locations, [ x, y ]) =>
locations.reduce((nearest, n) => {
const d = ((n[1][0] - x) ** 2 + (n[1][1] - y) ** 2) ** 0.5;
return nearest[1] < d ? nearest : [ n, d ];
}, [ null, Infinity ])[0];