-1

我需要 JSON.stringify 一个可能的循环对象,这意味着我必须预处理对象并删除循环。我已经知道n^2 indexOf 解决方案。由于该 javascript 似乎没有公开对象 ID 或内存位置,也没有公开任何对象的通用哈希码,有没有办法使包含检查更快?

4

1 回答 1

1

ES6 Set 对象可以跟踪直接访问的对象。当您遍历对象时,您将每个对象放入 Set 中,然后一个简单的objSet.has(obj)方法会告诉您是否已经遇到过这个对象。

当 ES6 Set 不可用时,解决方法通常涉及为每个对象添加一个不可枚举的唯一生成的字符串键,以便您可以将其放入常规对象映射中,此处显示在此ES6 Set polyfill中。

于 2015-09-06T22:51:51.227 回答