用另一个JavaScript对象的部分数据填充空对象

用另一个JavaScript对象的部分数据填充空对象,javascript,object,nested,Javascript,Object,Nested,我有一个空对象,表示如下: myObj = { myObjName = null; myObjType = null; myObjOcc = null; } mainObj = { "Ob1": { "id": 1, "name": "Ob1", "properties": { "attName": "A1", "attType": "string", "att

我有一个空对象,表示如下:

myObj = {
 myObjName = null;
 myObjType = null;
 myObjOcc = null;
}
mainObj = {
    "Ob1": {
        "id": 1,
        "name": "Ob1",
        "properties": {
            "attName": "A1",
            "attType": "string",
            "attOccurance": "minOccurs="1""
        },
    },
    "Ob2": {
         "id": 101,
         "name": "Ob2",
         "properties": {
             "attName": "B1",
             "attType": "string",
             "attOccurance": "minOccurs="1""
         },
     }
     "Ob3": {
          "id": 10001,
          "name": "Ob3",
          "properties": {
              "attName": "C1",
              "attType": "string",
              "attOccurance": "minOccurs="1""
              },
       }
}
myObjName = attName
myObjType = attType
myObjOcc = attOccurance
myObj = {
    "Ob1": {
        "myObjName": "A1",
        "myObjType": "string",
        "myObjOcc": "minOccurs="1""
        "Ob2": {
            "myObjName": "B1",
            "myObjType": "string",
            "myObjOcc": "minOccurs="1""
            "Ob3": {
                "myObjName": "C1",
                "myObjType": "string",
                "myObjOcc": "minOccurs="1""
            }
        }
   }
}
有一个对象,其对象表示如下:

myObj = {
 myObjName = null;
 myObjType = null;
 myObjOcc = null;
}
mainObj = {
    "Ob1": {
        "id": 1,
        "name": "Ob1",
        "properties": {
            "attName": "A1",
            "attType": "string",
            "attOccurance": "minOccurs="1""
        },
    },
    "Ob2": {
         "id": 101,
         "name": "Ob2",
         "properties": {
             "attName": "B1",
             "attType": "string",
             "attOccurance": "minOccurs="1""
         },
     }
     "Ob3": {
          "id": 10001,
          "name": "Ob3",
          "properties": {
              "attName": "C1",
              "attType": "string",
              "attOccurance": "minOccurs="1""
              },
       }
}
myObjName = attName
myObjType = attType
myObjOcc = attOccurance
myObj = {
    "Ob1": {
        "myObjName": "A1",
        "myObjType": "string",
        "myObjOcc": "minOccurs="1""
        "Ob2": {
            "myObjName": "B1",
            "myObjType": "string",
            "myObjOcc": "minOccurs="1""
            "Ob3": {
                "myObjName": "C1",
                "myObjType": "string",
                "myObjOcc": "minOccurs="1""
            }
        }
   }
}
我必须将mainObj中对象的数据插入myObj

映射应该是这样的:

myObj = {
 myObjName = null;
 myObjType = null;
 myObjOcc = null;
}
mainObj = {
    "Ob1": {
        "id": 1,
        "name": "Ob1",
        "properties": {
            "attName": "A1",
            "attType": "string",
            "attOccurance": "minOccurs="1""
        },
    },
    "Ob2": {
         "id": 101,
         "name": "Ob2",
         "properties": {
             "attName": "B1",
             "attType": "string",
             "attOccurance": "minOccurs="1""
         },
     }
     "Ob3": {
          "id": 10001,
          "name": "Ob3",
          "properties": {
              "attName": "C1",
              "attType": "string",
              "attOccurance": "minOccurs="1""
              },
       }
}
myObjName = attName
myObjType = attType
myObjOcc = attOccurance
myObj = {
    "Ob1": {
        "myObjName": "A1",
        "myObjType": "string",
        "myObjOcc": "minOccurs="1""
        "Ob2": {
            "myObjName": "B1",
            "myObjType": "string",
            "myObjOcc": "minOccurs="1""
            "Ob3": {
                "myObjName": "C1",
                "myObjType": "string",
                "myObjOcc": "minOccurs="1""
            }
        }
   }
}
另一件需要考虑的事情是mainObj中的id,因为Ob2必须嵌套在Ob1中,Ob3必须嵌套在Ob2

所以myObj应该是这样的:

myObj = {
 myObjName = null;
 myObjType = null;
 myObjOcc = null;
}
mainObj = {
    "Ob1": {
        "id": 1,
        "name": "Ob1",
        "properties": {
            "attName": "A1",
            "attType": "string",
            "attOccurance": "minOccurs="1""
        },
    },
    "Ob2": {
         "id": 101,
         "name": "Ob2",
         "properties": {
             "attName": "B1",
             "attType": "string",
             "attOccurance": "minOccurs="1""
         },
     }
     "Ob3": {
          "id": 10001,
          "name": "Ob3",
          "properties": {
              "attName": "C1",
              "attType": "string",
              "attOccurance": "minOccurs="1""
              },
       }
}
myObjName = attName
myObjType = attType
myObjOcc = attOccurance
myObj = {
    "Ob1": {
        "myObjName": "A1",
        "myObjType": "string",
        "myObjOcc": "minOccurs="1""
        "Ob2": {
            "myObjName": "B1",
            "myObjType": "string",
            "myObjOcc": "minOccurs="1""
            "Ob3": {
                "myObjName": "C1",
                "myObjType": "string",
                "myObjOcc": "minOccurs="1""
            }
        }
   }
}
我在代码中有一部分确定每个对象的级别:

for each(var oneObj in mainObj){
    .
    .
    switch (true) {
                 case  oneObj.id < 100: levelId=1; break;
                 case  oneObj.id < 10000: levelId=2; break;
                 case  oneObj.id < 1000000: levelId=3; break;
    }
    .
    .
}
(mainObj中的变量oneObj){
.
.
开关(真){
案例oneObj.id<100:levelId=1;中断;
案例oneObj.id<10000:levelId=2;中断;
案例oneObj.id<1000000:levelId=3;中断;
}
.
.
}

如果有人能帮我的话,我该怎么做?

你说的是对象看起来很像JSON。然而,下面是你如何实现你所说的你想要的结果

//var myObj={};
//用于(输入mainObj){
//const name=mainObj[key].name
//myObj[姓名]={
//myObjName:mainObj[key].properties.attName,
//myObjType:mainObj[key].properties.attType,
//myobjoc:mainObj[key].properties.attOccurance
//   }
// }
//console.log(myObj)
var mainObj={
Ob1:{
id:1,
名称:“Ob1”,
特性:{
收件人姓名:“A1”,
attType:“字符串”,
attOccurance:'minOccurs=“1”'
},
},
Ob2:{
id:101,
名称:“Ob2”,
特性:{
收件人姓名:“B1”,
attType:“字符串”,
attOccurance:'minOccurs=“1”'
},
},
Ob3:{
id:10001,
名称:“Ob3”,
特性:{
收件人姓名:“C1”,
attType:“字符串”,
attOccurance:'minOccurs=“1”'
},
}
}
var myObj={};
用于(输入mainObj){
const name=mainObj[key].name
myObj[姓名]={
myObjName:mainObj[key].properties.attName,
myObjType:mainObj[key].properties.attType,
myobjoc:mainObj[key].properties.attOccurance
}
}

log(myObj)
所以myObj应该是这样的:。。。。。对我来说,这个样本看起来不是嵌套的。你刚才做了一些缩进错觉对不起,你是对的,这是固定的答案,但在这个解决方案中,对象并不是嵌套在彼此内部的。如何使用levelId inside case函数实现这一点?