L'objet Object
Assign()
Permets de copier les propriétés et valeurs d'un objet vers un autre.
Ajouter à un objet existant
let obj1 = { a: 1, b: 2 };
let obj2 = { c: 3, d: 4 };
Object.assign(obj1, obj2);
console.log(obj1); // { a: 1, b: 2, c: 3, d: 4 }
console.log(obj2); // { c: 3, d: 4 }
Ainsi les propriétés et valeurs de obj2
sont copiées dans obj1
. obj1
est donc modifié tandis que obj2
reste inchangé.
Object.assign
retourne aussi un nouvel objet. Par exemple, plutôt que d'afficher le résultat de obj1
, il aurait été possible d'afficher le résultat retourné stocké dans une nouvelle variable:
let obj1 = { a: 1, b: 2 };
let obj2 = { c: 3, d: 4 };
let obj3 = Object.assign(obj1, obj2);
console.log(obj3); // { a: 1, b: 2, c: 3, d: 4 }
Gardez les objets intacts
Pour éviter de modifier un objet, par exemple obj1
dans les codes précédents ☝️, il est possible de spécifier un objet vide {}
comme étant l'objet devant recevoir les propriétés et valeurs du ou des autres objets:
let obj1 = { a: 1, b: 2 };
let obj2 = { c: 3, d: 4 };
let obj3 = Object.assign({}, obj1, obj2);
console.log(obj1); // { a: 1, b: 2 }
console.log(obj2); // { c: 3, d: 4 }
console.log(obj3); // { a: 1, b: 2, c: 3, d: 4 }
Entries()
Retourne un tableau []
constitué de sous-tableaux pour chaque combinaison de propriété et de valeur.
Par exemple:
let obj = { a: 1, b: 2 };
let entries = Object.entries(obj);
console.log(entries); // [["a", 1], ["b", 2]]
Keys()
Permets de retourner les propriétés d'un objet sous forme d'un tableau:
let obj = { a: 1, b: 2 };
let keys = Object.keys(obj);
console.log(keys); // ["a", "b"]
Values()
Similaire à keys(), mais retourne plutôt un tableau de valeurs:
let obj = { a: 1, b: 2 };
let values = Object.values(obj);
console.log(values); // [1, 2]