将一个多重对象的所有值赋值给另一个对象

objectAssign = (target: object, source: object) => {
  for (let key in source) {
    // console.log(key);
    //遍历参数的键
    if (typeof source[key] === 'object') {
      let isEmpty = Array.isArray(source[key])
        ? source[key].length === 0
        : Object.keys(source[key]).length === 0;
      if (isEmpty) {
        target[key] = source[key]; // 值为空直接复制值
      } else {
        objectAssign(target[key], source[key]); //值是对象就再次调用函数
      }
    } else {
      target[key] = source[key]; //基本类型直接复制值
    }
  }
};

参考链接:深入 js 深拷贝对象

原文地址:https://www.cnblogs.com/ziyoublog/p/13152215.html