我有一个关于 JS 如何处理这样的情况的问题。
Ley 说你有一个空对象:
var object = {};
内存中的 XML 作为字符串:
var xml = '<node1><node2>blah blah....';
现在您想要将该 XML 与某些信息相关联,因此您可以执行以下操作:
object[xml] = 'extra info';
假设您还有多个 XML,因此该对象将具有 N 个属性,并以可能很长的字符串作为键,将其他对象作为值。
问题是 JS 如何通过键处理对这些属性的访问(这意味着了解 XML),以及它的性能如何。它只是对比较字符串的键进行迭代还是发生了其他事情?
谢谢!
编辑:澄清一下,这不是我想做的事情,而是我使用的库(Moustache.js)正在做的事情,如您所见 here 。我想知道这如何影响我的应用程序的性能。
最佳答案
每次需要添加键或查找值时,您都可以对 XML 进行哈希处理。这会减少内存需求,但会增加查找时的处理时间。
var xml = '<node1><node2>blah blah....';
object[hash(xml)] = 'extra info';
var info = object[hash(xml)];
如果您需要能够再次提取 XML(例如通过循环键),则可以使用序列化技术来减小大小。
var xml = '<node1><node2>blah blah....';
object[serialize(xml)] = 'extra info';
for (var key in object) {
var originalXml = deserialize(key);
var info = object[key];
}
关于javascript - JS 处理长键对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39432634/