Найти ближайший элемент на странице

178
16 декабря 2017, 08:22

Добрый день, помогите найти ближайший элемент на странице с помощью JavaScript. Сейчас у меня находит ближайший элемент только по X. Бот у которого 75 score побежит вверх потому-что по X ему ближе, но на самом деле ближе совсем другой элемент на странице (тот coin что правее). Вот код:

const closest = (a,g) => a.reduce((p,c) => Math.abs(c-g) < Math.abs(p-g) ? c : p);
let botPositionX = parseInt(64);
let botPositionY = parseInt(64);
const data = [{x: 500, y: 285}, {x: 200, y: 324}, {x: 700, y: 200}];
const dataX = [500, 200, 700];
const dataY = [285, 324, 200];
const rightOrLeft = closest(dataX, botPositionX);
const topOrBottom = closest(dataY, botPositionY);
let found = data.find((loc) => {
  return loc.x === rightOrLeft;
});
let coinPosX = parseInt(found.x);
let coinPosY = parseInt(found.y);

Answer 1

Вам нужно искать расстояние по прямой, учитывая положение по X и Y. Формула нахождения длины по координатам: длина отрезка² = (y2 - y1)² + (x2 - x1)² На JS это выглядит так:

var g  = (Math.pow(x2-x1,2))+(Math.pow(y2-y1,2));
var dlina = Math.sqrt(g);
READ ALSO
Создать код JavaScript [требует правки]

Создать код JavaScript [требует правки]

Создать код JavaScript для преобразования единиц, который по величине температуры по шкале Фаренгейта вычисляет величину температуры в градусах...

177
Как изменить пагинацию Ajax на CMS Opencart?

Как изменить пагинацию Ajax на CMS Opencart?

Может кто сталкивался с такой проблемой! ОтзовитесьСайт sovamall

146