Destell
@Destell
React, React Native junior developer

Как правильнее работать с объектом данных точек для яндекс карты?

Код

Возник вопрос. Хочу вывести на яндекс карту точки из коллекции данных вида "категория: название, координаты".

Объект вида
var places = {
      shops: {
         shop1: {
            name: "name 1",
            coords: [1, 2]
         },
         shop2: {
            name: "name 2",
            coords: [3, 2]
         }
      },
      schools: {
         school1: {
            name: "school 1",
            coords: [1565656, 267676]
         },
         school2: {
            name: "school 2",
            coords: [767, 565]
         }
      }
   };


Сперва для перебора использовал подобный код
spoiler

objPassage: function ($obj, $map, $collection) {
                var array = Object.values($obj);

                for (var obj of array) {
                    var cath = Object.values(obj);

                    for (var item of cath) {
                        var info = Object.values(item),
                            placemark = _mapMethods.setPlacemark(info[1], info[0]);

                        $collection.add(placemark);
                    }
                }
                $map.geoObjects.add($collection);
            }



Потом мне показалось, что три раза писать одно и то же для каждого уровня объекта (не взирая на структуру объекта) не эстетично, как минимум, и я решил использовать рекурсию по уровню.

function eachObj($obj, $lvl = 0) {
      var toArray = Object.values($obj);
      $lvl--;

      for (var item of toArray) {
         if ($lvl > 0) {
            eachObj(item, $lvl);
         } else {
            console.log(toArray[0]);
            console.log(toArray[1]);
         }
      }
   }


Какой вариант лучше и есть ли более умные решения?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Думаю правильнее использовать GeoJSON
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы