在 JavaScript 中,深拷贝是指完全复制一个对象或数组,包括其所有嵌套的对象和数组,而不是只复制其引用。

以下是一种常见的实现深拷贝的方法:

  1. 使用 JSON.stringify 和 JSON.parse:这种方法会将对象转换为字符串,然后再将字符串转换回对象,从而完成深拷贝。但是这种方法有一些限制,比如无法复制函数、正则表达式等特殊类型的数据。
function deepCopy(obj) {
  return JSON.parse(JSON.stringify(obj));
}
  1. 使用递归:这种方法通过递归遍历对象的每个属性,然后逐个复制属性值,从而完成深拷贝。
function deepCopy(obj) {
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  
  let copy = Array.isArray(obj) ? [] : {};
  
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      copy[key] = deepCopy(obj[key]);
    }
  }
  
  return copy;
}

以上是两种常见的深拷贝方法,根据具体的需求和数据类型,可以选择适合的方法来实现深拷贝

js 深拷贝

原文地址: https://www.cveoy.top/t/topic/iRHT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录