最好使用数组或对象来存储结构化数据?

时间:2015-11-29 07:13:58

标签: arrays object

让我们说有一个类别和奖品数据的摄影比赛。我们可以将数据存储为数组或对象。我只是想知道哪个更好。

数组示例:

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'},
    }
}

我正在制作一般的竞赛管理系统。管理员用户可以通过输入一些信息(具有不同的类别和奖品)来创建新的比赛。前端页面将获取这些信息并显示。

这些数据可能还有其他用途,例如记录获胜者(比赛结束后)或搜索。

2 个答案:

答案 0 :(得分:0)

取决于您的预期用例。如果您想显示结果,使用数组更有意义。如果要创建一个过滤器对话框,让用户只找到特定的照片子集,请使用对象表示,因为它更好地显示了结果的基础结构。

答案 1 :(得分:0)

这取决于您之后使用这些代码的方式。

  • 如果您想在以后使用这些对象访问函数,请创建类和对象。

  • 如果这是一个小程序,只需使用数组。除非需要,否则不要使用类或对象。如果你正在写一个 在较大的应用程序中的小模块,没有其他东西需要 与您的代码接口,也许一个数组就足够了