web前端实用知识&技巧

JS数组对象:深拷贝方法

2022-07-02  本文已影响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;
  }
}
上一篇 下一篇

猜你喜欢

热点阅读