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

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 深拷贝对象

posted @ 2020-06-17 14:21  放飞的回忆  阅读(858)  评论(0编辑  收藏  举报