var obj=[ {a:1,b:2}, {a:3,b:4} ]; //深拷贝 var copy = obj.map(o => ({...o}));
很多人会用
var copy=JSON.parse(JSON.stringify(obj));
这种方法来处理对象数组的深拷贝,但是这种方法有很大的缺陷。
JSON.stringify()
将编码 JSON 支持的值。包含 Boolean,Number,String,以及对象,数组。其他任何内容都将被特殊处理。
处理undefined
,Function
,Symbol
时,它被忽略掉Infinity
,NaN
会被变成 nullDate
对象会被转化为 String (默认调用date.toISOString())