【发布时间】:2021-07-16 07:53:39
【问题描述】:
我正在尝试通过深入比较嵌套的 json 对象来分配一个 json 值
当我执行 console.log(result); 时,我的第一个 json 对象结果是这样的;
结果
{
"computer": {
"en": {
"4gSSbjCFEorYXqrgDIP2FA": {
"gallery": "Some value here",
"dummykey": "some dummy value here"
},
"ksjdfsk123233165":{
"gallery": "test value",
"dummykey": "checking the new file here"
}
}
},
"testing": {
"hi": {
"2pOUGnI1oRD7nsrYs600HA": {
"access": "not available",
"final": "still in progress"
}
},
"ja": {
"2pOUGnI1oRD7nsrYs600HA": {
"mediaaccess": "system check",
"access": "available",
"final": "done"
},
"sdjksd9120812nmdns9": {
"access": "available",
"final": "progress"
}
}
},
"hardware": {
"us": {
"66rzYr2BpWL1VTBHdLTdSW": {
"fieldtest": null,
"media": "not available"
},
"sjkjsp3253m899as0": {
"fieldtest": null,
"media": "not available"
}
},
"eu": {
"66rzYr2BpWL1VTBHdLTdSW": {
"fieldtest": null,
"media": "available"
},
"sjkjsp3253m899as0": {
"fieldtest": "in test we are planning",
"media": "not available"
}
}
},
"software": {
"uk": {
"2eAmIIuG4xkLvatkU3RUSy": {
"testfield": "its working",
"assign": "not yet"
},
"wehjbe8230291929umsnd":{
"testfield": "working",
"assign": "new trainee"
}
}
},
"demo": {
"ga": {
"4zu7f2YP4cXqR6aeeMxEt8": {
"newkey": "hello",
"assign": "to new assignnie"
},
"ksdjfns4575634n":{
"newkey": "working",
"assign": "new trainee"
}
},
}
};
我试图比较和赋值的第二个 json 对象在下面
比较对象
{
"computer": { "compare": "gallery" },
"testing": { "compare": "mediaaccess" },
"hardware": { "compare": "fieldtest" },
"software": { "compare": "testfield" },
"demo": { "compare": "assign" }
}
我正在尝试检查并分配存在于 compareObj 对象中的值以及存在于侧 result obj 中的键,并在 compareValue 中分配值
let compareValue;
但问题是在分配值时我想检查compareObj 值是否存在于result obj 中
这里是第一个示例结果
"computer": {
"en": {
"4gSSbjCFEorYXqrgDIP2FA": {
"gallery": "Some value here",
"dummykey": "some dummy value here"
}
}
},
和比较对象
"computer": { "compare": "gallery" },
这里 compareObj 包含 compare 键,其中 gallery 和 result obj 包含 gallary 作为键,因此 compareValue 应该包含 compareValue= "Some value here" 像这样
但是 在第二个例子中
"testing": {
"hi": {
"2pOUGnI1oRD7nsrYs600HA": {
"access": "not available",
"final": "still in progress"
}
},
"ja": {
"2pOUGnI1oRD7nsrYs600HA": {
"mediaaccess": "system check",
"access": "available",
"final": "done"
}
}
},
和compareObjObj
"testing": { "compare": "mediaaccess" },
因为测试 hi 不包含 mediaaccess 那么它应该检查另一个对象是 ja 并分配像这样的值 compareValue="system check"
第三个示例结果
"hardware": {
"us": {
"66rzYr2BpWL1VTBHdLTdSW": {
"fieldtest": null,
"media": "not available"
}
},
"eu": {
"66rzYr2BpWL1VTBHdLTdSW": {
"fieldtest": null,
"media": "available"
}
}
},
和比较对象
"hardware": { "compare": "fieldtest" },
如果compareObj 中存在的值在result obj 中不可用,或者包含的值为空,那么它应该看起来像这样compareValue= "Untitled"
如果对象包含多个值,那么它应该从第一个对象中获取值,例如在第二个示例中,mediaaccess 不存在,因此如果在可用语言中,它应该从第二语言或第三语言或第四语言获取mediaaccess 不存在,那么它应该打印 Untitled
【问题讨论】:
标签: javascript node.js arrays json nodes