update property objects javascript babeljs ecmascript-next

javascript - property - object.assign typescript



Alternativa de Object.assign(... array) (2)

Estás buscando

var obj = Object.assign({}, ...array)

que crea un nuevo objeto en lugar de mutar la array[0] .

Supongamos que tenemos una matriz de objetos.

Llamar a Object.assign(...array) hace una herencia entre aquellos objetos en los que el objeto con índice i reemplaza las propiedades existentes en el objeto con índice i-1

Por ejemplo:

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]) )

Ahora, utilizando Babel con la sintaxis de propagación de objetos propuesta, podemos hacer esto de forma estática:

{...array[0],...array[1],...array[2]} // spread used for each object not for array

¿Cómo hacer eso dinámicamente?

Hay una superposición de contexto de "sintaxis de propagación". Me refiero a cómo usar la sintaxis de propagación para ambos:

  • Para que el Array difunda elementos.
  • Para el objeto literal de salida {} para hacer herencia

?

Intenté {...array} y devuelve {0:<array[0]>,1:<array[1]>,2:<array[2]>} que no es la misma salida que Object.assign(...array) .


Me parece que el método que estás buscando es .concat ()

Devuelve una nueva matriz que es una combinación del destino y la fuente.