2015-11-29 3 views
0

Предположим, есть фотоконкурс с категориями и данными о призах. Мы можем хранить данные в виде массива или объекта. Мне просто интересно, что лучше.Лучше использовать массив или объект для хранения структурированных данных?

пример массива: Пример

var contest = { 
    'name': 'Photo Contest', 
    'categories': [ 
     {'name': 'landscape', 'type': 'single'}, 
     {'name': 'portrait', 'type': 'single'}, 
     {'name': 'food', 'type': 'single'}, 
    ], 
    'prizes': [ 
     {'name': 'winner of the year', 'count': 1, 'cat': ''}, 
     {'name': '1st', 'count': 1, 'cat': 'landscape'}, 
     {'name': '2nd', 'count': 3, 'cat': 'landscape'}, 
     {'name': '3rd', 'count': 5, 'cat': 'landscape'}, 
     {'name': '1st', 'count': 1, 'cat': 'portrait'}, 
     {'name': '2nd', 'count': 3, 'cat': 'portrait'}, 
     {'name': '3rd', 'count': 5, 'cat': 'portrait'}, 
     {'name': '1st', 'count': 1, 'cat': 'food'}, 
     {'name': '2nd', 'count': 3, 'cat': 'food'}, 
     {'name': '3rd', 'count': 5, 'cat': 'food'} 
    ] 
} 

объект:

var contest = { 
    'name': 'Photo Contest', 
    'categories': { 
     'landscape': {'type': 'single'}, 
     'portrait': {'type': 'single'}, 
     'food': {'type': 'single'}, 
    }, 
    'prizes': { 
     'winner of the year': {'count': 1, 'cat': ''}, 
     'landscape 1st': {'count': 1, 'cat': 'landscape'}, 
     'landscape 2nd': {'count': 3, 'cat': 'landscape'}, 
     'landscape 3rd': {'count': 5, 'cat': 'landscape'}, 
     'portrait 1st': {'count': 1, 'cat': 'portrait'}, 
     'portrait 2nd': {'count': 3, 'cat': 'portrait'}, 
     'portrait 3rd': {'count': 5, 'cat': 'portrait'}, 
     'food 1st': {'count': 1, 'cat': 'food'}, 
     'food 2nd': {'count': 3, 'cat': 'food'}, 
     'food 3rd': {'count': 5, 'cat': 'food'}, 
    } 
} 

Делаю общую систему управления конкурсы. Пользователь Admin может создать новый конкурс, введя некоторую информацию (с разными категориями и призами). На первой странице будет отображаться информация и отображение.

Возможно, есть другие способы использования этих данных, например, запись победителей (после закрытия конкурса) или для поиска.

ответ

0

Это зависит от способа использования этого кода.

  • Если вы хотите использовать эти объекты после этого для функций доступа идет с созданием классов и объектов.

  • Если это для небольшой программы, просто используйте массив. Не беспокойтесь о классах или объектах, если это необходимо. Если вы пишете
    небольшого модуля в большом приложении, и никаких других вещей не нужно
    интерфейса с вашим кодом, может быть массив достаточно

+0

спасибо. Я редактировал сообщение. До сих пор отображение является основной функцией. Возможно, позже я буду расширять функции, такие как поиск и анализ данных, и так далее. –

+0

@BrickYang Итак, как я уже сказал, похоже на отображение только на первой странице, лучший способ пойти с массивом, но поскольку вы хотите добавить эти данные для поиска, анализа и т. Д., Лучше идти с объектами. Если у вас нет объявлять массивы снова и снова, чтобы получить данные, что приводит к избыточности данных, что не является хорошей практикой. Надеюсь, это поможет :) – AVI

0

В зависимости от вашего предполагаемого использования. Если вы хотите, чтобы отображал результаты, имеет смысл использовать массив. Если вы хотите создать диалоговое окно фильтра, которое позволит пользователю находить только определенный поднабор фотографий, используйте представление объекта, так как оно лучше отображает основную структуру результатов.

+0

спасибо. Я редактировал сообщение. До сих пор отображение является основной функцией. Возможно, позже я буду расширять функции, такие как поиск и анализ данных, и так далее. –

Смежные вопросы