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


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM