gpt4 book ai didi

JavaScript - 使用唯一键存储对象?

转载 作者:行者123 更新时间:2023-12-03 06:07:34 24 4
gpt4 key购买 nike

我有一个 JavaScript 对象,它被推送到全局对象。

var storedElement = {
element: currentElement,
parentElement: parentElement,
elementChild: currentChild
}

storedElement 被推送到名为的全局数组。过去地点 = []

我本质上是试图保留元素去过的位置的历史记录。为此,我想将这些属性存储到全局数组中。如果相同的元素已经存在并且在全局中具有相同的父元素,那么我不想推送,但如果父元素不同,则推送。

有没有一种方法可以为 item 添加一个唯一的键,以便我快速有效地访问对象中的该元素。目前,我目前有几个 for every 循环来从对象中获取数据,但这是一种实用的方法。理想情况下,我希望 1 个函数推送到全局并检索元素。

如果我要为每个对象提供唯一的键,那么我如何知道它基于哪个元素?

最佳答案

在 Javascript 中,数组 [...] 存储顺序值,保留其顺序,并且如果您知道索引,则可以提供快速访问。

对象或字典{...}将值与键一起存储,而不保留它们的顺序,并且如果您知道键,则可以提供快速访问。

如果您只需要存储具有不同“父级”的元素,则可以使用一个对象,并使用父级作为键。如果您还需要按顺序浏览它们,最好的选择是同时使用数组和对象:

storedElements = []
storedByParent = {}

您在每个中存储的内容取决于您的应用程序要求。您可以存储该对象的副本:

newEl = {element: ..., parent: parentElement, ...}
storedElements.push(newEl)
storedByParent[parentElement] = newEl

或者您可以将索引存储到数组中:

storedElements.push(newEl)
storedByParent[parentElement] = storedElements.length - 1

或者您可以存储一个简单的 bool 值,以跟踪您见过哪些 parent :

storedElements.push(newEl)
storedByParent[parentElement] = true

对象的后一种用法通常称为“集合”,因为它类似于数学对象:即使您调用 mySet[12] = true 一百次,集合也包含元素 12,或者不是。

关于JavaScript - 使用唯一键存储对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465566/

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