var a = {}; a['fruit'] = "apple"; var b = {}; b['vegetable'] = "carrot"; var food = {};
La variable de salida 'comida' debe incluir ambos pares clave-valor.
Podrías usar Object.assign
.
var a = { fruit: "apple" }, b = { vegetable: "carrot" }, food = Object.assign({}, a, b); console.log(food);
Para el navegador sin compatibilidad con Object.assign
, puede iterar las propiedades y asignar los valores manualmente.
var a = { fruit: "apple" }, b = { vegetable: "carrot" }, food = [a, b].reduce(function (r, o) { Object.keys(o).forEach(function (k) { r[k] = o[k]; }); return r; }, {}); console.log(food);
Maneras de lograr:
1. Usando el método JavaScript Object.assign() .
var a = {}; a['fruit'] = "apple"; var b = {}; b['vegetable'] = "carrot"; var food = Object.assign({}, a, b); console.log(food);
2. Usando la función personalizada.
var a = {}; a['fruit'] = "apple"; var b = {}; b['vegetable'] = "carrot"; function createObj(obj1, obj2){ var food = {}; for (var i in obj1) { food[i] = obj1[i]; } for (var j in obj2) { food[j] = obj2[j]; } return food; }; var res = createObj(a, b); console.log(res);
3. Usando el operador ES6 Spread .
let a = {}; a['fruit'] = "apple"; let b = {}; b['vegetable'] = "carrot"; let food = {...a,...b} console.log(food)
Podría usar el operador de propagación en es6, pero necesitaría usar babel para transpilar el código para que sea compatible con todos los navegadores.
const a = {}; a['fruit'] = "apple"; const b = {}; b['vegetable'] = "carrot"; const food = { ...a, ...b } console.log(food)