JavaScript

Какую структуру данных вы используете в разработке js приложений? Дерево? или Множество объектов? пояснение внутри

Стоит ли использовать объект, в котором много других объектов, в котором еще куча дочерних объектов? или просто организовать данные по разным объектам и через ID как в базе данных их выбирать?

Пример: у меня есть - бренд авто, марка, владелец.

Организовать будет лучше через вложенные объекты?
brand = {
marks:{
r7:{
name:'anton'
}
}
}

или создать несколько массивов, в которых будут idшники через которые приложение будет перебирать массивы и понимать кто к чему относится?
brands =[{id:1, brand:'bmw'}];
marks =[{id:1, marka:'R7'}];
owner =[{id:1, name:'Антон''}];

Как вы делаете? и как лучше?
Все зависит от приложения - точнее, и от общего алгоритма, и от манипуляций с данными в частности.
Например, в одностраничнике с единственной общей "функцией" и без обмена данными с внешним кодом (например, оффлайновый поиск в статичном справочнике), может быть оправдан подход одного большого дерева, так как не нужно решать задачи изменения-связывания данных, и ригидность структуры не мешает. А в комплексном приложении, построенном в соответствии с принципами SOLID, и работающим с несколькими апи, где данные "живые и подвижные" - целесообразнее разделить их по логически независимым компонентам.

В твоем случае, прежде всего необходимо определиться, что именно является "основной" сущностью. Скорее всего, это будет "владелец авто" - а значит, разумно сделать отдельно коллекцию экземпляров этого объекта + и отдельно справочник автомобилей (коллекцию экземпляров "автомобиль").
Нужно ли дробить сущность автомобиля на массивы "брэнд" и "модель", вынося из свойств экземпляра - зависит от того, какая работа планируется со справочником. Скажем, если он будет редактироваться юзером, и храниться в mongoDB или Firebase RD, то смысл определенно есть: так можно значительно упростить код, а также сократить объемы передаваемых по сети данных, снизить нагрузку, и немного повысить скорость работы приложения. Но и в этом случае, совсем не нужно объявлять переменные для этих массивов - храни их в объекте справочника. Будет этот объект массивом, или же основан на классе с инкапсуляцией - зависит только от тебя, от того какой будет архитектура приложения.

Короче, если бы на этот вопрос был единственный универсальный ответ, то не было бы разработчиков ПО))
Хайрола Ыскак
Хайрола Ыскак
68 166
Лучший ответ