Merge object

Par arnich, il y a 10 ans


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

Benjamin Derepas, il y a 10 ans

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

arnich, il y a 10 ans

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.

Benjamin Derepas, il y a 10 ans

As tu regarder du coté de map ?

arnich, il y a 10 ans

J'aimerai eviter d'utiliser jQuery.

Maenhyr, il y a 10 ans

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, il y a 10 ans

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.