我有2个对象a和diff 我需要匹配的数组或嵌套对象“ a”中的对象。
如下所示的输入:
var a = {
"AMI_DESCRIPTION":{
"tags":{
"aws":1,
"vendor_param":1
}
},
"AMI_ID":{
"description":"The AWS AMI id for the version of Ontap for the VSA to boot up with",
"tags":{
"aws":1,
"vendor_param":1
}
},
"AMI_TYPE":{
"allow":[
"byol",
"paygo10",
"paygo2",
"paygo"
],
"default":"byol",
"description":"Defined the type of Cloud Ontap AMI to be deployed",
"tags":{
"aws":1,
"vendor_param":1
}
},
"AWSCLI_PATH":{
"default":"/usr/software/bin/aws",
"description":"Path to AWS CLI binaries",
"tags":{
"aws":1,
"dev_only":1,
"vendor_param":1
}
},
"AWS_DISABLE_ROLLBACK":{
"allow":[
"true",
"false"
],
"default":"false",
"description":"",
"tags":{
"aws":1,
"dev_only":1,
"unsupported":1,
"vendor_param":1
}
},
"IMAGE_BUILDNAME":{
"allow":[
"cst-ok",
"cit-ok",
"none",
"ignore_filter"
],
"default":"cit-ok",
"description":"filter",
"tags":{
"aws":1,
"gcp":1,
"vendor_param":1
}
},
"IMAGE_DEBUG_TYPE":{
"description":"tedst",
"tags":{
"common":1,
"vendor_param":1
}
},
映射a
对象并返回diff
对象中存在的字段的值
var diff = {
"IMAGE_BUILDNAME":"testing",
"IMAGE_DEBUG_TYPE":"no"
}
预期输出:
"IMAGE_BUILDNAME":{ "description":"sdsd.", "tags":{ "aws":1, "gcp":1,
"vendor_param":1 } }, "IMAGE_DEBUG_TYPE":{ "allow":[ "debug", "non-debug",
"ignore_filter" ], "default":"non-debug", "description":"filter.", "tags":{
"aws":1, "gcp":1, "vendor_param":1 } }
预先感谢
答案 0 :(得分:0)
遍历diff
属性,并将diff
的每个属性作为字段及其值从output
对象添加到a
:
var output = {};
for (let p in diff) {
output[p]=a[p]
}
完整示例
var a = {
"AMI_DESCRIPTION": {
"tags": {
"aws": 1,
"vendor_param": 1
}
},
"AMI_ID": {
"description": "The AWS AMI id for the version of Ontap for the VSA to boot up with",
"tags": {
"aws": 1,
"vendor_param": 1
}
},
"AMI_TYPE": {
"allow": [
"byol",
"paygo10",
"paygo2",
"paygo"
],
"default": "byol",
"description": "Defined the type of Cloud Ontap AMI to be deployed",
"tags": {
"aws": 1,
"vendor_param": 1
}
},
"AWSCLI_PATH": {
"default": "/usr/software/bin/aws",
"description": "Path to AWS CLI binaries",
"tags": {
"aws": 1,
"dev_only": 1,
"vendor_param": 1
}
},
"AWS_DISABLE_ROLLBACK": {
"allow": [
"true",
"false"
],
"default": "false",
"description": "",
"tags": {
"aws": 1,
"dev_only": 1,
"unsupported": 1,
"vendor_param": 1
}
},
"IMAGE_BUILDNAME": {
"allow": [
"cst-ok",
"cit-ok",
"none",
"ignore_filter"
],
"default": "cit-ok",
"description": "filter",
"tags": {
"aws": 1,
"gcp": 1,
"vendor_param": 1
}
},
"IMAGE_DEBUG_TYPE": {
"description": "tedst",
"tags": {
"common": 1,
"vendor_param": 1
}
}
}
var diff = {
"IMAGE_BUILDNAME": "testing",
"IMAGE_DEBUG_TYPE": "no"
}
var output = {};
for (let p in diff) {
output[p]=a[p]
}
console.log(output)