深拷贝
1、vue深拷贝(for循环遍历)
export function deepClone(source) {
if (!source && typeof source !== 'object') {
throw new Error('error arguments', 'deepClone')
}
// 判断数据类型
const targetObj = source.constructor === Array ? [] : {}
// Object.keys返回属性名,数组的话就返回下标,后面的keys就是这些属性,不改变原数组
Object.keys(source).forEach(keys => {
// 判断子元素是否是对象,是的话就递归遍历,source还是原数组
if (source[keys] && typeof source[keys] === 'object') {
targetObj[keys] = deepClone(source[keys])
} else {
targetObj[keys] = source[keys]
}
})
return targetObj
}
2、Json对象
let newObj=JSON.parse(JSON.stringify(data))