为了解决这个问题,并保持JSON.stringify
简单起见,我用下面的办法(在这里我的脱水法)
public dehydrate(): string {
var seenObjects = [];
function inspectElement(key, value) {
if (detectCycle(value)) {
return '[Ciclical]';
} else {
return value;
};
};
function detectCycle(obj): boolean {
if (obj && (typeof obj == 'object')) {
for (let r of seenObjects) {
if (r == obj) {
return true;
};
};
seenObjects.push(obj);
};
return false;
};
let json: string = JSON.stringify(this, inspectElement,' ');
return json;
};
请注意,尽管这是TypeScript,但使用强类型实现方法内的结果会导致我们产生一些混淆。
不幸的是,我不得不使用for
而不是数组搜索,因为它根本不适用于我。
错误?将圆形结构转换为JSON – Mahi
您能提供一个预期结果的例子吗? –
没有什么可以复制的。做一个浅层克隆就像重新调用你的构造函数来创建一个新对象一样。我假设还有其他代码没有粘贴。 –