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));