2017-09-26 54 views
0

一個只有一個屬性的JavaScript object.assign可以說,我們有一個對象 a = { prop1:"something", schema:{ array:[array of object] } } 和b是 b = { array:[array of object] }爲不進行復制

,並在對象數組他們有非常不同的值相同的對象。我想用object.assign從b更新a.schema創建一個新對象。 所以我寫了類似Object.assign({},a.schema,b)的東西,它返回我這個 { schema: { array:[array of object] } } 。但我不想創建一個副本,然後將此架構複製到新創建的副本中。 我想要這 newObject = { prop1:"something", schema:{ array:[array of object from b] } } 我想創建一個新的對象,看起來就像在一個Object.assign中,這是可能的嗎?

+2

你可以做'Object.assign({},a,{schema:b})''。 –

回答

0

這是你可以做什麼的例子:

x = {a:1,b:[1,2,3}} y = {c:[4,5,6]} z=Object.assign({},{prop1:x.a},{shcema:y.c})

+0

您必須指定屬性 –

0

如果是使用spread syntax沒事,你可以這樣做:

const a = { 
 
    prop1: 'something', 
 
    schema: { 
 
    array: [ 
 
     { 
 
     \t aprop: 'prop', 
 
     }, 
 
    ], 
 
    }, 
 
}; 
 
const b = { 
 
    array: [ 
 
    { 
 
     bprop: 'test', 
 
    }, 
 
    { 
 
     bprop: 'test2', 
 
    }, 
 
    ], 
 
}; 
 
const updated = { 
 
    ...a, 
 
    schema: b, 
 
}; 
 

 
console.log(updated);