私は多くの入れ子オブジェクトを持つ大きなJSオブジェクトを持っています。例えば:私は、オブジェクトを作成する必要がjavascriptオブジェクトのクローン部分
var A = {
'b': {
c: [1],
d: {
e: {
f: 'g'
}
}
}
};
"B" は、オブジェクト "A" のように見えますが、配列 "BC" は、他の一つの項目含まれている必要があります
var B = {
'b': {
c: [1, 2],
d: {
e: {
f: 'g'
}
}
}
};
オブジェクト「 "変更するべきではありません。
私はそれを行うには、2つの方法を知っている:
1つのディープクローンJSオブジェクト:私はクローンを作成する必要が
var B = JSON.parse(JSON.stringify(A)); // or with lodash: _.cloneDeep(A)
B.b.c.push(2);
2クローンのみオブジェクトと配列:
var B = Object.assign({}, A);
B.b = Object.assign({}, B.b);
B.b.c = B.b.c.slice(0);
B.b.c.push(2);
を私は最初の方法はリソースを大量に消費することです。私はすべてのオブジェクトを複製する必要はありません。 2番目の方法はコードが多すぎます。私の例では小さなオブジェクトがありますが、アプリケーションでは本当に大きなオブジェクトになる可能性があります。
最適な方法でオブジェクト "B"を作成するにはどうすればよいですか?