实现JS深克隆的几种方式

一、递归

function deepClone(obj) {
  if (obj === null || typeof obj !== 'object') {
    return obj;
  }
  
  let clone = Array.isArray(obj) ? [] : {};
  
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      clone[key] = deepClone(obj[key]);
    }
  }
  
  return clone;
}

二、JSON正反序列化

function deepClone(obj) {
  return JSON.parse(JSON.stringify(obj));
}

三、第三方函数库Lodash

const _ = require('lodash');

const obj = {
  a: 1,
  b: {
    c: 2,
    d: [3, 4, 5]
  }
};

const clonedObj = _.cloneDeep(obj);

console.log(clonedObj);

 

posted @ 2022-07-08 17:51  鱿鱼须须  阅读(62)  评论(0编辑  收藏  举报