Bonjour,

Je cherche comment faire un merge de deux objets en javascript.
La methode merge ne semble pas faire ce que je veux du coup je ne sais pas dans quel sens chercher.

Ce que je veux :

a = { id: 1, libelle: 'test', date:'23/10/2015'}
b= { id: 1, libelle: 'newVal',propBidon:'bidon'}

// Donne
a = { id: 1, libelle: 'newVal', date:'23/10/2015'}

Merci de votre aide

7 réponses


Pourquoi ne pas renseigner la valeur direction dans le tableau avec son indice ?
a.id = "newVal"

arnich
Auteur

La c'est pour l'exemple mais mon objet a un certain nombre d'attribut.
Je ne veux pas mettre une ligne de code par attribut et je veux pouvoir modifier la structure de mon objet sans que cela pose problème.

As tu regarder du coté de map ?

arnich
Auteur

J'aimerai eviter d'utiliser jQuery.

Salut,
tu peux faire ca :

var result = Object.assign({}, a, b);

mais cela va te donner

// a = { id: 1, libelle: 'newVal', date:'23/10/2015', propBidon:'bidon' }

Si c'est ok pour toi, tu peux partir dessus. Attention c'est une méthode récente donc elle ne sera pas supportée sur les anciens navigateurs. Dans ces cas là, tu as un polyfill. Sinon tu peux utiliser une librairie comme underscorejs.

PS : map() est censé prendre un objet et le transformer en un autre. Tu n'es pas censé intéragir avec un autre élément.

arnich
Auteur

J'avais vu la methode assign. Cela me derangeait d'embarquer propBidon.
Je pense que je vais dans un premier temps regardé si j'ai des prop non présente dans l'obj a dans l'obj b pour le nettoyer puuis utiliser assign.
Concernant la compatibilité il y a pas de soucis car c'est dans une appli node. Donc no soucy de navigateur.