zoukankan      html  css  js  c++  java
  • Object合并,并使用默认值处理


      private mergeObject(targetObj: any, sourceObj: any, defaultObj: any) {
        if (defaultObj instanceof Object) {
          let keys = Object.keys(defaultObj);
          for (let i = 0; i < keys.length; i++) {
            const key = keys[i];
            const prop = defaultObj[key]
            if (prop instanceof Array || prop instanceof Object) {
              if (targetObj[key] == undefined) {
                targetObj[key] = prop instanceof Array ? [] : {};
              }
              this.mergeObject(targetObj[key], sourceObj[key], defaultObj[key]);
            } else {
              if (sourceObj && sourceObj[key]) {
                targetObj[key] = sourceObj[key];
              } else {
                targetObj[key] = defaultObj[key];
              }
            }
          }
        } else if (defaultObj instanceof Array) {
          defaultObj.forEach(targetSubObj => {
            this.mergeObject(targetSubObj, sourceObj, defaultObj);
          });
        }
      }

    本文来自博客园,作者:广林,转载请注明原文链接:https://www.cnblogs.com/guanglin/p/14654745.html

  • 相关阅读:
    项目管理--PMBOK 读书笔记(4)【项目整合管理】
    数论(二)
    数论(一)
    Jmeter连接mysql数据库
    minicom工具的使用
    centos7 docker 挂载文件思路
    go语言的init函数
    go操作elasticsearch
    UML交互图
    Linux环境下mysql的安装
  • 原文地址:https://www.cnblogs.com/guanglin/p/14654745.html
Copyright © 2011-2022 走看看