[英]JavaScript - Storing objects with unique key ?
我有一个JavaScript对象被推送到全局对象。
var storedElement = {
element: currentElement,
parentElement: parentElement,
elementChild: currentChild
}
storedElement被推到一个名为的全局数组。 pastLocations = []
我实质上是在尝试保留元素去过的位置的历史记录。 为此,我想将这些属性存储到全局数组中。 如果相同的元素已经存在并且在全局中具有相同的父代,那么我不想推送,但是如果父代不同,则推送。
有没有一种方法可以在项目中放置唯一键,以便快速有效地访问对象中的此元素。 目前,我每个循环有几个从对象中获取数据的方法,但这是一种实用的方法。 理想情况下,我希望有1个函数可以推入全局并检索元素。
如果我要为每个对象提供唯一的键,那么仅知道元素,我将如何知道它基于什么键?
[...]
在Javascript中,数组存储顺序值,保留其顺序,如果您知道索引,则可以快速访问。
对象或字典{...}
将值与键一起存储,但不保留其顺序,如果知道键,则提供快速访问。
如果只需要存储具有不同“父”元素的元素,则可以使用一个对象,将父对象用作键。 如果还需要按顺序浏览它们,那么最好的选择是同时使用数组和对象:
storedElements = []
storedByParent = {}
每种存储的内容取决于您的应用程序要求。 您可以存储对象的副本:
newEl = {element: ..., parent: parentElement, ...}
storedElements.push(newEl)
storedByParent[parentElement] = newEl
或者您可以将索引存储到数组中:
storedElements.push(newEl)
storedByParent[parentElement] = storedElements.length - 1
或者,您可以存储一个简单的布尔值,以仅跟踪您所看到的父母:
storedElements.push(newEl)
storedByParent[parentElement] = true
对象的后一种用法通常称为“集合”,因为它与数学对象相似:即使您调用mySet[12] = true
一百次,该集合要么包含元素12,要么不包含元素12。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.