Destell
@Destell
Зеленый фронтендер

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

Приветствую.

Код

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

Объект вида
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]);
         }
      }
   }


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

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

Войти через центр авторизации
Похожие вопросы
IBC Human Resources Екатеринбург
от 80 000 руб.
Apsis Ростов-на-Дону
от 85 000 руб.
23 марта 2019, в 16:34
700 руб./за проект
23 марта 2019, в 15:42
400 руб./в час