很少有大型数组,或少数几个变量的大数组?

时间:2016-11-05 15:31:02

标签: javascript arrays memory multidimensional-array

如果之前已经问过这个问题,我很难道歉,但我发现很难用以前可能会问过的方式来提问。

问:拥有以下内容会更有效率: mass[128] = {0.0} speed[128] = {0.0} age[128] = {0}

或者: properties[128] = {mass=0.0, speed=0.0, age=0}

为什么?是否有一个简单的规则要始终牢记,(少数大型阵列比许多小型等更好)?

我正在用JS编写JS。经常阅读和写作元素。

非常感谢!

1 个答案:

答案 0 :(得分:2)

一般来说,这里的答案是:让最有意义的是让你编写最简单,最清晰的代码;如果你遇到任何性能或内存问题,请担心。

使用具有命名属性的对象数组在现代JavaScript引擎上的访问时间方面可能更有效,并且在内存使用方面可能效率较低。在这两种情况下,差异将是 难以置信 次要且可能难以察觉。

如果您的值是数字且数组的大小可以是固定的,那么您可以使用typed arrays,因为它们确实是数组(其中normal arrays aren't 1 ,除非JavaScript引擎可以做它作为优化)。但是输入数组有一些缺点(例如,它们是固定大小),所以再次,如果有必要的话......

具有命名属性的对象数组示例:

var properties = [
    {mass: 0, speed: 0, age: 0},
    {mass: 1, speed: 1, age: 1},
    // ...
];

如果您使用的是ES2015(您说您正在使用Chrome,那么可以),您可能会使用const

const properties = [
    {mass: 0, speed: 0, age: 0},
    {mass: 1, speed: 1, age: 1},
    // ...
];

使properties成为常量,而不是它所指向的数组的内容,因此您仍然可以根据需要添加,删除或修改条目。

1 这是我贫穷的小博客上的帖子。