【发布时间】:2014-02-19 13:31:06
【问题描述】:
我有部分数据标记有 ID,分布在不同的集合中。
我需要直接使用 ID 访问这些数据,但我还需要非常快速地循环数据。
var listOfPartA = {
34523: { foo: 7, bar: 123},
6435: { foo: 2, bar: 163},
3123: { foo: 3, bar: 223},
...
};
var listOfPartB = {
34523: { baz: 1},
6435: { baz: 4},
3123: { baz: 6},
...
};
如果我需要为 Id 获取特定的数据部分,它会很快,但如果我尝试循环所有数据部分,它会很慢。
var listOfPartA = [
{ id: 34523, foo: 7, bar: 123},
{ id: 6435, foo: 2, bar: 163},
{ id: 3123, foo: 3, bar: 223},
...
];
var listOfPartB = [
{ id: 34523, baz: 1},
{ id: 6435, baz: 4},
{ id: 3123, baz: 6},
...
];
如果我想为这些对象的 ID 获取特定的数据部分,它会很慢,因为我必须手动搜索它们,但如果我遍历所有数据部分,它会很快。
不能快速直接访问和快速迭代吗?
【问题讨论】:
-
你总是可以同时使用两者。数组是通过引用分配的,因此内存开销很小。
-
在同一数据上使用两者。关键字:索引结构 ;)
-
如果我想删除所有ID的数据怎么办?我可以在对象中快速完成,但数组不会以死引用结束吗?
-
我的意思是删除一个 ID 的所有数据部分...
标签: javascript arrays performance object