我有以下2个json对象,它们表示如下数据:
passObject =
{
'Topic One' : 4, 'Topic Two' : 10, 'Topic Three' : 1, 'Topic Four' : 1
}
failObject =
{
'Topic Two' : 3, 'Topic One' : 1
}
我需要将两个对象组合为一个,以产生结果:
resultObject = {
'topics': [
{ 'Topic One' : { 'pass' : 4, 'fail': 1 } },
{ 'Topic Two' : { 'pass' : 10, 'fail': 3 } },
{ 'Topic Three' : { 'pass' : 1, 'fail': 0 } },
{ 'Topic Four' : { 'pass' : 1, 'fail': 0 } }
]
}
我研究了“ lodash”功能,但无法找到必要的功能。有人能够提出一种如何最有效地完成它的方法吗?
答案 0 :(得分:0)
passObject =
{
'Topic One' : 4, 'Topic Two' : 10, 'Topic Three' : 1, 'Topic Four' : 1
};
failObject =
{
'Topic Two' : 3, 'Topic One' : 1
};
intObject = {}
for (var k in passObject) {
intObject[k] = {'pass':passObject[k]}
}
for (var k in failObject) {
intObject[k]['fail'] = failObject[k]
}
document.write('<p>' + JSON.stringify(intObject) + '</p>')
resultObject = {
'topics': []
}
for (var k in intObject) {
d = {}
d[k] = intObject[k]
resultObject['topics'].push(d)
}
document.write('<p>' + JSON.stringify(resultObject) + '</p>')
我从一个用于存储键值对的对象开始,避免了列表会带来的查找复杂性。 之后,我将其转换为列表,以便您可以满足API的需求。 无需Lodash。只是简单的Javascript。