JS使用长键处理对象

时间:2016-09-11 03:42:30

标签: javascript

我有一个关于JS如何处理这类案件的问题。

莱伊说你有一个空物体:

var object = {};

内存中的XML作为字符串:

var xml = '<node1><node2>blah blah....';

现在,您希望将该XML与某些信息相关联,因此您可以执行以下操作:

object[xml] = 'extra info';

想象一下,你还有几个XML,因此该对象将具有N个属性,可能有长字符串作为键,其他对象作为值。

问题是JS如何通过键处理对这些属性的访问(这意味着知道XML),以及它的性能如何。它只是比较字符串的键的迭代还是还有其他事情发生?

谢谢!

编辑:为了澄清,这不是我想要做的事情,而是我使用的库(Moustache.js)正在做的事情,你可以看到here。我想知道这会如何影响我的应用程序的性能。

1 个答案:

答案 0 :(得分:2)

每次需要添加密钥或查找值时,都可以对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];
}