gpt4 book ai didi

javascript - 我可以在 JavaScript 中同时获得对象和数组的好处吗?

转载 作者:行者123 更新时间:2023-11-30 17:36:45 25 4
gpt4 key购买 nike

我有部分数据标记有分布在不同集合中的 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 的特定数据部分,它会很慢,因为我必须手动搜索它们,但如果我遍历所有数据部分,它会很快。

我不能有快速的直接访问和快速的迭代吗?

最佳答案

预先索引你的数组:

var listOfPartA = [
{id:34523, foo:7 bar:123},
...
];

var lookupPartA = {};
listOfPartA.forEach(function(x,i) {lookupPartA[x.id] = i;});

现在,您可以使用 listOfPartA 数组快速循环,但也可以快速查找:

listOfPartA[lookupPartA[34523]]

关于javascript - 我可以在 JavaScript 中同时获得对象和数组的好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com