美文网首页web前端实用知识&技巧
JS数组对象:深拷贝方法

JS数组对象:深拷贝方法

作者: 意随风起 | 来源:发表于2022-07-02 20:43 被阅读0次
function deepClone(obj) {
  if (obj === null || !obj) return obj;
  if (Object.prototype.toString.call(obj) === '[object Object]') {
    let target = {};
    const keys = Object.keys(obj);
    keys.forEach((key) => {
      if (obj[key] && typeof obj[key] === 'object') target[key] = deepClone(obj[key]);
      else target[key] = obj[key];
    });
    return target;
  } else if (Array.isArray(obj)) {
    let arr: any[] = [];
    obj.forEach((item, index) => {
      if (item && typeof item === 'object') arr[index] = deepClone(item);
      else arr[index] = item;
    });
    return arr;
  }
}

相关文章

网友评论

    本文标题:JS数组对象:深拷贝方法

    本文链接:https://www.haomeiwen.com/subject/covkbrtx.html