簡單的問題在這裏:2個Json對象我想合併,而重命名第二個。Javascript合併和重命名Json對象
第一陣列(OBJ1):
[
{
"name":"Metric 1",
"value":33731487,
},
{
"name":"Metric 2",
"value":11252893,
}
]
第二個數組(OBJ2):
[
{
"name":"Metric 1",
"value":118181851,
},
{
"name":"Metric 2",
"value":15151,
}
]
所需的結果:
[
{
"name":"Metric 1", // Obj1
"value":118181851, // Obj1
"name_compare":"Metric 1", // Obj2
"value_compare":148748, // Obj2
},
{
"name":"Metric 2", // Obj1
"value":15151, // Obj1
"name_compare":"Metric 2", // Obj2
"value_compare":741178, // Obj2
}
]
所以,我想:
重命名Obj2(正常工作):
function JsonRename(obj) {
var output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[i] = JsonRename(obj[i]);
} else {
output[i+'_compare'] = obj[i];
}
}
return output;
}
我又試圖通過合併它們:
function JsonMergeCompare(obj1, obj2) {
var renamed_obj2 = JsonRename(obj2);
var output = {};
for (i in obj1) {
output[i] = obj1[i];
output[i] = renamed_obj2[i];
}
return output;
}
我的問題是在上面的功能肯定的,因爲它只返回OBJ 2(這是有道理的,因爲我遍歷輸出[i]兩次),但我怎樣才能進入並只改變鍵 - >值?
回答你能提供一個小提琴或plunkr? –
爲什麼是-1?我認爲這是一個相當體面的問題! – nunorbatista