JavaScript 中的数组拷贝
数组的拷贝:
1、浅拷贝
var a = { name: '名字', id: 1 };
var b = {};
for (var key in a) {
if (a.hasOwnProperty(key)) {
b[key] = a[key];
}
}
2、深拷贝
使用递归遍历
function deepClone(origin, target) {
var toStr = Object.prototype.toString;
target = target || {};
for (var key in origin) {
if (origin.hasOwnProperty(key)) {
if (typeof (origin[key]) === "object" && origin[key] !== null) {
if (toStr.call(origin[key]) === "[object Array]") {//数组
target[key] = [];
} else {//对象
target[key] = {};
}
deepClone(origin[key], target[key]);//递归
} else {
target[key] = origin[key];
}
}
}
return target;
};
使用JSON的方法
var obj =JSON.parse(JSON.stringify(origin));