Pregunta
¿Cómo unir las propiedades de dos objetos Javascript?
Responder esta pregunta por dudin el 2009-02-17
Necesito unir dos objetos Javascript muy simples en tiempo de ejecución, por ejemplo:
Que al aplicar una función o método de unión:
Obtenga un resultado similar al siguiente:
var objeto1 = { nombre: 'Pepe', nick: 'loco' };
var objeto2 = { edad: 28, auto: 'Ferrari' };
Que al aplicar una función o método de unión:
var objeto3 = unir(objeto1, objeto2);
Obtenga un resultado similar al siguiente:
// objeto3 -> { nombre: 'Pepe', nick: 'loco', edad: 28, auto: 'Ferrari' }
Respuestas
La siguiente función te permitirá hacer algo similar a lo que deseas, la misma copia todas las propiedades del objeto2 en el objeto1:
Para comprobar el resultado final:
var objeto1 = { nombre: 'Pepe', nick: 'loco' };
var objeto2 = { edad: 28, auto: 'Ferrari' };
function unir(objeto1, objeto2) {
for (propiedad in objeto2) {
objeto1[propiedad] = objeto2[propiedad];
}
return objeto1;
}
unir(objeto1, objeto2);
Para comprobar el resultado final:
//Comprobación
for (propiedad in objeto1) {
alert(propiedad+':' + objeto1[propiedad]);
}
por maikel el 2009-02-17
Frameworks JavaScript como Prototype poseen http://Object.extend (destino, fuente), que permite copiar igualmente todas las propiedades desde un objeto fuente a otro destino.
Object.extend = function(destination, source) {
for (var property in source) destination[property] = source[property];
return destination;
};
Por lo que para resolver este caso sería muy sencillo:Object.extend(objeto1, objeto2);
por maikel el 2009-02-17



