如何构建这个数据集?

时间:2013-09-19 16:20:38

标签: javascript object data-structures

我正在处理一组字段,其中每个字段都有一个显示名称和一个内部名称。例如:

  • 截止日期=> DueDate
  • 创建者=>作者
  • Title =>标题
  • 作者=> Author0

请注意,显示名称可以与其内部名称相同,也可以与其他字段的内部名称相同(参见上面的示例)。字段总数介于50到100之间。

我需要以下方法:

  • 从显示名称
  • 获取内部名称
  • 从内部名称
  • 获取显示名称
  • 检查显示名称是否存在
  • 检查是否存在内部名称

我应该如何构建数据以满足这些需求?最直接的似乎是构建两个对象:

{"Due Date":"DueDate","Created By":"Author",...}
{"DueDate":"Due Date","Author":"Created By",...}

但是我不喜欢冗余,我想知道是否有更好的方法。我正在考虑的其他选择:

对象数组:

[{display:"Due Date",internal:"DueDate"},...]

简单数组:

["Due Date","DueDate","Created By","Author",...]

1 个答案:

答案 0 :(得分:2)

我会选择这样的一系列对象:

[{
    'display_name': 'Due Date',
    'system_name': 'DueDate',
    'value': ''
}, {
    'display_name': 'Created By',
    'system_name': 'Author',
    'value': ''    
}, {
    'display_name': 'Title',
    'system_name': 'Title',
    'value': ''        
}, {
    'display_name': 'Author',
    'system_name': 'Author0',
    'value': ''    
}]   

它非常易于扩展,可以选择添加额外的参数,并且可以通过JSON轻松发送。

如果您觉得这个数据结构过于冗长,您可以像下面的示例一样将关键缩小,然后将其转换为前端逻辑中的正确结构:

{
    'a': 'Due Date',
    'b': 'DueDate',
    'c': ''
}