gpt4 book ai didi

javascript 将整数数组转换为对象数组

转载 作者:行者123 更新时间:2023-11-28 21:03:39 25 4
gpt4 key购买 nike

我有一个名为 SelectedItems 的整数数组。我有另一个数组,其中包含名为 AvailableItems 的对象,并且是从 json 解析的;这些 Item 对象具有属性 {ContainerID, ContainerName, ItemID, ItemName}

我想将 SelectedItems 从整数数组转换为 Items 数组,其中每个 ItemID 都替换为 Item与 AvailableItems 中的 ItemID 对应的 对象。 SelectedItems 中的每个 ItemID 都是唯一的。

我从 2 个循环开始:一个循环遍历 SelectedItems 的每个元素,但随后我发现自己每次循环遍历 AvailableItems 来查找相应的 ItemID 以及我需要复制到 SelectedItems 中的对象键。

所以基本上我构建了一个看似非常低效的循环。我想知道是否有更好的方法来避免循环内重复循环?

示例数据:

对于AvailableItems,您有

{
ContainerID: i,
ContainerName: 'SomeName',
ItemID: j,
ItemName: 'SomeOtherName'
}

可能有 1,000 个对象,然后 SelectedItems 是整数数组

[23,43,64,34...]

谢谢。

最佳答案

您可以将每个对象放入数字数组 AvailableItems 中与其 ItemID 匹配的索引处。

因此,您知道 ItemID 为 5 的项目位于 AvailableItems[5] 中,而不必循环遍历并找到它。

如果不同 ItemID 值之间存在较大差距,不确定这会产生什么影响,但您可以尝试一下,看看它是否有效。

<小时/>

更新:

经过快速搜索并阅读 this answer ,看起来索引之间有间隙不会浪费大量内存。但是,它会影响检查AvailableItems.length的结果。如果您有一个包含一个条目的数组,但该条目的索引为 500,则 AvailableItems.length 将返回 501,即使数组中只有一个条目。

只要您不需要使用 length 函数,此解决方案就应该适合您。

关于javascript 将整数数组转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399677/

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