Как я могу изменить значения объектов массива, сравнивая его сразу на Javascript? - PullRequest
0 голосов
/ 16 января 2019

Я печатаю на карте свои местоположения, предоставленные мне по API. В некоторых случаях местоположения возвращают одинаковые значения lat и lng, если, например, я получаю 5 местоположений и 3 местоположения имеют одинаковые местоположения, я вижу только 3 случая, потому что 3 местоположения находятся в одной и той же точке.

Мое быстрое решение: Зациклите мой массив объектов и добавьте 0,00001 или 0,0002, чтобы просмотреть все местоположения на моей карте.

let points=
[{
        "id": 1,
        "description": "LOC 1",
        "latitude": 37.3676908,
        "longitude": -6.0432685
    },
    {
        "id": 2,
        "description": "LOC 2",
        "latitude": 37.3676908,
        "longitude": -6.0432685
    },
    {
        "id": 3,
        "description": "LOC 3",
        "latitude": 37.3676908,
        "longitude": -6.0432685
    },
    {
        "id": 5,
        "description": "LOC 4",
        "latitude": 37.363128,
        "longitude": -6.0455416
    },
    {
        "id": 6,
        "description": "LOC 5",
        "latitude": 37.369319,
        "longitude": -6.0421527
    }
]

Я хочу получить следующее:

let points=
[{
        "id": 1,
        "description": "LOC 1",
        "latitude": 37.3676908,
        "longitude": -6.0432685
    },
    {
        "id": 2,
        "description": "LOC 2",
        "latitude": 37.3676909,
        "longitude": -6.0432686
    },
    {
        "id": 3,
        "description": "LOC 3",
        "latitude": 37.3676910,
        "longitude": -6.0432687
    },
    {
        "id": 5,
        "description": "LOC 4",
        "latitude": 37.363128,
        "longitude": -6.0455416
    },
    {
        "id": 6,
        "description": "LOC 5",
        "latitude": 37.369319,
        "longitude": -6.0421527
    }
]

Я пытался добиться этого с помощью .sort и .filter, но я не могу найти хорошее решение для этого.

Может ли кто-нибудь помочь мне. Заранее спасибо

1 Ответ

0 голосов
/ 16 января 2019

Я думаю, вам нужно map, если вы хотите выполнить операцию для каждого объекта в массиве.

points.map(x => x + Math.random()/1000) добавит случайное крошечное число.

Но вы можете выполнять любую функцию, какую захотите, после части x =>. Может быть, что-то вроде

points.map(myfunc) и вы можете определить myfunc как добавление .0001 или добавление .0002 на основе некоторого условия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...