js实现深拷贝复制的方法

发布时间 2023-12-14 18:29:27作者: seekHelp

utils/deepCopy.js

export default function deepCopy(obj) { // 深拷贝方法
  if (typeof obj !== 'object' || obj === null) {
	return obj;
  }

  let copy;
  if (obj instanceof Array) {
	copy = [];
	for (let i = 0; i < obj.length; i++) {
	  copy[i] = deepCopy(obj[i]);
	}
  } else {
	copy = {};
	for (let key in obj) {
	  if (obj.hasOwnProperty(key)) {
		copy[key] = deepCopy(obj[key]);
	  }
	}
  }

  return copy;
}

引用

import deepCopy from '@/util/deepCopy.js';

const obj = { name: 'Tom', age: 29, hobbies: ['sing', 'jump','rap'] };
const copiedObj = deepCopy(obj);