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]