Supposons que nous avons un tableau d'objets.
L'appel de Object.assign(...array)
crée un héritage entre ces objets, où objet avec index i
remplace les propriétés existantes dans l'objet avec index i-1
Par exemple:
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])
)
Maintenant, en utilisant Babel avec la syntaxe de propagation d'objet proposée, nous pouvons le faire de manière statique:
{...array[0],...array[1],...array[2]} // spread used for each object not for array
Comment faire cela dynamiquement?
Il y a un chevauchement de contexte de "syntaxe répandue". Je veux dire comment utiliser la syntaxe de propagation pour les deux:
{}
Fasse l’héritage?
J'ai essayé {...array}
Et il renvoie {0:<array[0]>,1:<array[1]>,2:<array[2]>}
, Ce qui est pas le même résultat que Object.assign(...array)
.
Tu recherches
var obj = Object.assign({}, ...array)
qui crée un nouvel objet au lieu de muter array[0]
.
Il me semble que la méthode que vous recherchez est .concat ()
Retourne un nouveau tableau qui est une fusion de la cible et de la source.