爲了解決這個問題,並保持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
您能提供一個預期結果的例子嗎? –
沒有什麼可以複製的。做一個淺層克隆就像重新調用你的構造函數來創建一個新對象一樣。我假設還有其他代碼沒有粘貼。 –