如果以前有人问过这个问题,我很抱歉,但我发现很难用以前可能问过的方式来表达这个问题。
问:这样做是否更有效率:
mass[128] = {0.0}
speed[128] = {0.0}
age[128] = {0}
Or:
properties[128] = {mass=0.0, speed=0.0, age=0}
,为什么?是否有一个简单的规则要牢记在心,(几个大的数组比许多小的数组好吗?)
我用Chrome写JS。对元素的读写非常频繁。
非常感谢!
一般来说,这里的答案是:做最有意义的事情,让你写出最简单、最清晰的代码;如果你真的遇到任何性能或内存问题,请担心。
在现代JavaScript引擎上,使用具有命名属性的对象数组在访问时间方面可能更有效,但在内存使用方面可能效率较低。在这两种情况下,差异将是令人难以置信的很小,可能难以察觉。
如果你的值是数字,你的数组可以是固定的大小,你可能会使用类型化数组,因为它们真的是数组(通常数组不是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这是我贫血的小博客上的一篇文章