別以為JSON.parse(JSON.stringify(data))做深拷貝無敵,對於以下這種情況,當你需要保留父級對象,即 對象存在循環引用,就會報錯。
var a = [
{
"id":5,
"pid":2,
"categoryName":"搜索行為",
},
{
"id":6,
"pid":3,
"categoryName":"購買力",
}
]
a.map(item => {
item.parent = item
return item
})
let b = JSON.stringify(a)
console.log(b)
報錯

正確的方法是:
var a = [
{
"id":5,
"pid":2,
"categoryName":"搜索行為",
},
{
"id":6,
"pid":3,
"categoryName":"購買力",
}
]
a.map(item => {
item.parent = JSON.parse(JSON.stringify(item)) // 注意這里
return item
})
let b = JSON.stringify(a)
console.log(b)
更精簡的情況:
var a = {};
a.o = a;
console.log(JSON.stringify(o))
