我正在使用React / Redux构建一个网站框架,其中网站的配置采用JSON格式并加载到Redux存储中。该配置包含其他设置(如网站名称和Google Analytics ID),导航结构(如主导航,页脚导航和任何其他导航)以及页面索引(最多可包含1000页)。
问题:构建此配置的最佳方法是什么(特别是页面索引),以便最有效地解析它?
我有两种方法可以做到这一点:
单个相同对象数组
[
{
"id": 1,
"url_slug": "about-us",
"page_title": "About Us",
"template": "about"
},
{
"id": 2,
"url_slug": "careers",
"page_title": "Careers at Company Name",
"template": "default"
}
]
使用这种方法,数据很好地打包在一个可预测的结构中,但是我需要解析一次数组(每页加载)以找到我想通过url_slug引用的对象的索引。
具有唯一键的对象
{
"about-us": {
"id": 1,
"page_title": "About Us",
"template": "about"
},
"careers": {
"id": 2,
"page_title": "Careers at Company Name",
"template": "default"
}
}
使用这种方法,我可以根据其键轻松地引用我想要的对象,但是对于一个大型站点,它将导致一个具有数百个键的对象。
那么,哪种性能最佳?它有所作为吗?
答案 0 :(得分:0)
在这种情况下,使用数组而不是对象没有任何实际优势。对于拥有数百个密钥的单个对象而言,没有什么比这更糟的了。比单个阵列有数百个元素 - 可能除了这些键占用内存,但是"数百个"密钥最多可以加起来为千字节。
如果对象的顺序很重要,请使用数组。如果要随机访问(即通过某些唯一键访问),请使用对象。 (如果订单很重要和您想要随机访问,那么您需要做更多的工作,但看起来并非如此。)