<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>json</title>
</head>
<body>
<p id="test"></p>
<script>
var p=[
{
'name':'lisi',
'items':[
{
'datas':[
{'sta':'ab','data':'123456'},
{'sta':'ac','data':'234567'},
{'sta':'ad','data':'345678'},
{'sta':'ae','data':'456789'}
]
}
],
},
{
'name':'zhangsan',
'items':[
{
'datas':[
{'sta':'wq','data':'345436'},
{'sta':'we','data':'678789'},
{'sta':'ws','data':'909855'},
{'sta':'wa','data':'123567'}
]
},
{
'datas':[
{'sta':'zz','data':'345'},
{'sta':'xx','data':'679'},
{'sta':'cc','data':'855'},
{'sta':'vv','data':'567'}
]
}
]
}
]
var p3=[];
p.forEach(function(item){
p3.push({
'name':item.name,
'items':item.items
})
})
p3[1].name = 'jack';
p3[1].items[1].datas[0].sta = 'ROSE';
console.log(p);
console.log(p3);
</script>
</body>
</html>
把p中的数据存入p3,修改p3中的数据不影响p中的数据。
上面我写的p3[1].name = 'jack';不影响p[1].name,但当我修改p3中的datas中的sta值时,p中的datas中的sta也改变了,问题出在哪了,应该怎么改?
原因就像上面说的。
简单一点的话,通过JSON.parse(JOSN.stringify())来快速复制一个对象,通过操作这个对象来实现效果。