对象数组的深拷贝

时间:2023-01-23 19:51:38

 

 

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,以及对象,数组。其他任何内容都将被特殊处理。

处理undefinedFunctionSymbol 时,它被忽略掉
InfinityNaN 会被变成 null
Date 对象会被转化为 String (默认调用date.toISOString())