问:拥有以下内容会更有效率:
mass[128] = {0.0}
speed[128] = {0.0}
age[128] = {0}
或者:
properties[128] = {mass=0.0, speed=0.0, age=0}
为什么?是否有一个简单的规则要始终牢记,(少数大型阵列比许多小型等更好)?
我正在用JS编写JS。经常阅读和写作元素。
非常感谢!
答案 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 这是我贫穷的小博客上的帖子。