オブジェクトの配列があると仮定します。
Object.assign(...array)
を呼び出すと、インデックスi
を持つオブジェクトがインデックス_i-1
_を持つオブジェクトの既存のプロパティをオーバーライドするオブジェクト間で継承が行われます
例えば:
_var array=[{interf:'IPerson',name:'Someone'},{clss:'Person',name:'Ahmed'},{student:true}];
console.log(
Object.assign(...array) // Object.assign(array[0],array[1],array[2])
)
_
提案されたオブジェクトスプレッド構文でBabelを使用すると、これを静的に行うことができます。
_{...array[0],...array[1],...array[2]} // spread used for each object not for array
_
それを動的に行う方法?
「スプレッド構文」のコンテキストの重複があります。私は両方にスプレッド構文を使用する方法を意味します:
{}
_が継承を行う場合?
_{...array}
_を試しましたが、_{0:<array[0]>,1:<array[1]>,2:<array[2]>}
_を返します。これはnotObject.assign(...array)
と同じ出力です。
あなたは探している
var obj = Object.assign({}, ...array)
array[0]
を変更する代わりに新しいオブジェクトを作成します。
あなたが探しているメソッドは.concat()です
ターゲットとソースのマージである新しい配列を返します。