から1つのJSONオブジェクトで行方不明のキーを埋める私はobject2はから充填フィールドが欠落している必要がJSONオブジェクトオブジェクト1を持っています。JavaScriptが別のJSONオブジェクト
私は、この機能を使用するために使用される:
function fillObject(from, to) {
for (var key in from) {
if (from.hasOwnProperty(key)) {
if (Object.prototype.toString.call(from[key]) === '[object Object]') {
if (!to.hasOwnProperty(key)) {
to[key] = {};
}
fillObject(from[key], to[key]);
}
else if (!to.hasOwnProperty(key)) {
to[key] = from[key];
}
}
}
}
そしてそれは、両方のオブジェクトが同じ構造を持っていたすべての中に働きました。今度はの項目の中にのオブジェクト1は、実際には構造のどこにでも現れます。 オブジェクト1とobject2はの例(私はすべての不要なキーを削除したような構造は、面白いように見えるかもしれません)。助けを事前に
var object1 = [
{
"position": 1,
"items": [
{
"position": 1, "itemId": 431, "title": "Title 1"
},
{
"position": 2, "itemId": 1162, "title": "Overwritten title"
}
]
},
{
"position": 2,
"groups": [
{
"position": 1,
"items": [
{
"position": 1, "itemId": 452, "title": "New title"
},
{
"position": 2, "itemId": 1388, "title": "Title 4"
},
{
"position": 3, "itemId": 1942, "title": "Title 5"
}
]
},
{
"position": 2, "itemId": 1942, "title": "Title 5"
},
{
"position": 3,
"items": [
{
"position": 1, "itemId": 431, "title": "Title 1"
},
{
"position": 2, "itemId": 2000
},
{
"position": 3, "itemId": 452, "title": "Title 2"
},
]
}
]
},
{
"position": 3, "itemId": 1388, "title": "Title 4"
},
{
"position": 4, "itemId": 2000, "title": "Extra title"
}
];
ありがとう:
var object1 = [
{
"position": 1,
"items": [
{
"position": 1, "itemId": 431
},
{
"position": 2, "itemId": 1162, "title": "Overwritten title"
}
]
},
{
"position": 2,
"groups": [
{
"position": 1
"items": [
{
"position": 1, "itemId": 452, "title": "New title"
},
{
"position": 2, "itemId": 1388
},
{
"position": 3, "itemId": 1942
}
]
},
{
"position": 2, "itemId": 1942
},
{
"position": 3,
"items": [
{
"position": 1, "itemId": 431
},
{
"position": 2, "itemId": 2000
},
{
"position": 3, "itemId": 452
}
]
}
]
},
{
"position": 3, "itemId": 1388
},
{
"position": 4, "itemId": 2000, "title": "Extra title"
}
];
var object2 [
{ "itemId": 431, "title": "Title 1" },
{ "itemId": 452, "title": "Title 2" },
{ "itemId": 1162, "title": "Title 3" },
{ "itemId": 1388, "title": "Title 4" },
{ "itemId": 1942, "title": "Title 5" },
{ "itemId": 2000 }
];
は、そして、これは私が結果になりたいものです。あなたがプロパティでオブジェクトを識別することができることを提供
[Object.assign()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)および[ Spread syntax](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_operator#Spread_in_object_literals)は、まだ分かっていない場合に役に立ちます。 – TW80000
'itemId'プロパティを使ってオブジェクトを一意に識別できますか? –