javascript - JS 处理长键对象

标签 javascript

我有一个关于 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/

相关文章:

javascript - 来自 jQuery 源的正则表达式

javascript - 从字符串末尾开始使用 JavaScript 进行字符串操作

javascript - 使用 $format Date = $.PHP Date ("U", date) 转换为时区;

javascript - 获取动态生成的 id 元素的内部文本以发送到 Google Analytics

javascript - 咕噜声 : throw new TypeError ('Arguments to path.resolve must be strings' );

javascript - 1 个图库中的 Fancybox 图片和 YouTube

javascript - 如果 'undefined' 被覆盖,则获取 'window.undefined'

javascript - 从数组中提取随机字符串并插入句子

Razor View 中的 Javascript url 操作

php - 使用javascript删除cookie