Run*_*sen 6 javascript arrays object
什么将使用更多内存,items1每个项目是一个数组或items2每个项目是一个对象:
var items1=[['James Bond',8,40],
...,
['Superman',9999,36]];
var items2=[{Name,'James Bond',strength:8,coolness:40},
...,
{Name,'Superman',strength:9999,coolness:36}];
Run Code Online (Sandbox Code Playgroud)
哪种方法可以获取数据search1或search2?
var search1=items[432][2];
var search2=items2[432]["coolness"];
Run Code Online (Sandbox Code Playgroud)
PS:给定的分数是非正式的,我个人对2个字符的看法
第二次编辑:我有一张测试图片,但正如菲利克斯指出的那样.这更正确:http: //jsperf.com/sparse-objects/3,它表示数组查找速度提高了20%.
我不是最擅长编写单元测试的人,但这里有一个简单的例子,它告诉我没有太大的区别:
// see code in fiddle
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/ryanwheale/HbHxv `
这是另一个有更多输出和控制的:
// see code in fiddle
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/ryanwheale/HbHxv/4/
我喜欢第二个选项,因为您可以通过在开发工具中使用 Chrome 的时间轴查看每种方法占用的内存量。开始录制,并单击“对象”按钮几次,等待几秒钟,然后单击“阵列”按钮几次。您会看到对象消耗的内存多于数组使用的内存。就执行时间而言,数组似乎也略有优势。然而,我们谈论的是一百万件……这是非常不现实的。