Monture datant de 2017. Elle apporte essentiellement de nouvelles méthodes aux Objets globaux.


Object.values()

La méthode Object.values() renvoie un tableau qui contient les valeurs de toutes les propriétés énumérables d’un objet, dans l’ordre de leur apparition dans la boucle for-in (à la différence de la méthode Object.keys() qui renvoie les noms de ces propriétés).

const object = { a: 1, b: 2, c: 3 };

console.log(Object.values(object)); // [1, 2, 3]

Vous pouvez également utiliser la méthode Object.values() avec un objet qui a des propriétés héritées :

const object = Object.create({ d: 4 });
object.a = 1;
object.b = 2;
object.c = 3;

console.log(Object.values(object)); // [1, 2, 3]

Notez que la méthode Object.values() ne renvoie que les valeurs des propriétés énumérables de l’objet. Les propriétés non énumérables et celles héritées de la chaîne de prototype de l’objet ne sont pas inclues. Si vous voulez inclure les propriétés non énumérables et celles héritées dans le tableau renvoyé, vous pouvez utiliser la méthode Object.getOwnPropertyNames() ou utiliser une boucle for-in :

const object = Object.create({ d: 4 });
object.a = 1;
object.b = 2;
object.c = 3;
Object.defineProperty(object, 'e', {
  value: 5,
  enumerable: false
});

console.log(Object.getOwnPropertyNames(object)); // ['a', 'b', 'c', 'e']

const values = [];
for (const key in object) {
  values.push(object[key]);
}
console.log(values); // [1, 2, 3, 5]

Object.entries()

La méthode Object.entries() renvoie un tableau qui contient des paires clé-valeur pour toutes les propriétés énumérables d’un objet, dans l’ordre de leur apparition dans la boucle for-in (à la différence de la méthode Object.keys() qui renvoie uniquement les noms de ces propriétés).

const object = { a: 1, b: 2, c: 3 };

console.log(Object.entries(object)); // [['a', 1], ['b', 2], ['c', 3]]

Vous pouvez également utiliser la méthode Object.entries() avec un objet qui a des propriétés héritées :

const object = Object.create({ d: 4 });
object.a = 1;
object.b = 2;
object.c = 3;

console.log(Object.entries(object)); // [['a', 1], ['b', 2], ['c', 3]]

Notez que la méthode Object.entries() ne renvoie que les paires clé-valeur des propriétés énumérables de l’objet. Les propriétés non énumérables et celles héritées de la chaîne de prototype de l’objet ne sont pas inclues. Si vous voulez inclure les propriétés non énumérables et celles héritées dans le tableau renvoyé, vous pouvez utiliser la méthode Object.getOwnPropertyNames() et créer les paires clé-valeur vous-même :

const object = Object.create({ d: 4 });
object.a = 1;
object.b = 2;
object.c = 3;
Object.defineProperty(object, 'e', {
  value: 5,
  enumerable: false
});

const entries = Object.getOwnPropertyNames(object).map(key => [key, object[key]]);
console.log(entries); // [['a', 1], ['b', 2], ['c', 3], ['e', 5]]

String.prototype.padStart()

La méthode String.prototype.padStart() permet de remplir une chaîne avec un caractère ou une chaîne de caractères jusqu’à ce qu’elle atteigne une longueur spécifiée. Elle renvoie la chaîne modifiée.

const string = 'Hello';

console.log(string.padStart(10)); // affiche '     Hello' (5 espaces + 'Hello')
console.log(string.padStart(10, '1234')); // affiche '12341Hello' (5 '1' + 'Hello')

La méthode String.prototype.padStart() prend deux arguments optionnels :

  • la longueur finale de la chaîne (une valeur entière)
  • le caractère ou la chaîne de caractères à utiliser pour remplir la chaîne (par défaut, c’est un espace)

Si la chaîne de départ est déjà de la longueur spécifiée ou plus longue, elle n’est pas modifiée.

La méthode String.prototype.padStart() est utile lorsque vous souhaitez aligner des chaînes de caractères à gauche dans un tableau ou une présentation de données.


String.prototype.padEnd()

La méthode String.prototype.padEnd() permet de remplir une chaîne avec un caractère ou une chaîne de caractères jusqu’à ce qu’elle atteigne une longueur spécifiée. Elle renvoie la chaîne modifiée.

const string = 'Hello';

console.log(string.padEnd(10)); // affiche 'Hello     ' ('Hello' + 5 espaces)
console.log(string.padEnd(10, '1234')); // affiche 'Hello1234' ('Hello' + 5 '4')

La méthode String.prototype.padEnd() prend deux arguments optionnels :

  • la longueur finale de la chaîne (une valeur entière)
  • le caractère ou la chaîne de caractères à utiliser pour remplir la chaîne (par défaut, c’est un espace)

Si la chaîne de départ est déjà de la longueur spécifiée ou plus longue, elle n’est pas modifiée. La méthode String.prototype.padEnd() est utile lorsque vous souhaitez aligner des chaînes de caractères à droite dans un tableau ou une présentation de données.


Object.getOwnPropertyDescriptors()

La méthode Object.getOwnPropertyDescriptors() renvoie un objet qui contient tous les descripteurs de propriété (c’est-à-dire les caractéristiques de chaque propriété) de l’objet passé en argument.

const object = {
  property1: 'value1',
  property2: 'value2'
};

console.log(Object.getOwnPropertyDescriptors(object));
// {
//   property1: {
//     value: 'value1',
//     writable: true,
//     enumerable: true,
//     configurable: true
//   },
//   property2: {
//     value: 'value2',
//     writable: true,
//     enumerable: true,
//     configurable: true
//   }
// }

Chaque descripteur de propriété est un objet qui contient les propriétés suivantes :

  • value : la valeur de la propriété
  • writable : un booléen indiquant si la propriété peut être modifiée (par exemple, en utilisant l’opérateur d’affectation =)
  • enumerable : un booléen indiquant si la propriété apparaît lors d’une boucle for-in ou d’un appel à Object.keys()
  • configurable : un booléen indiquant si la propriété peut être supprimée ou si ses descripteurs de propriété peuvent être modifiés

La méthode Object.getOwnPropertyDescriptors() ne renvoie que les descripteurs de propriété de l’objet passé en argument. Les descripteurs de propriété héritées de la chaîne de prototype de l’objet ne sont pas inclus. La méthode Object.getOwnPropertyDescriptors() est souvent utilisée en conjonction avec Object.defineProperties() pour créer un nouvel objet qui a les mêmes propriétés qu’un objet existant, y compris leurs descripteurs de propriété.

const object1 = {
  property1: 'value1',
  property2: 'value2'
};

// Crée un nouvel objet, object2, qui a les mêmes propriétés et descripteurs de propriété que object1.
const object2 = Object.defineProperties({}, Object.getOwnPropertyDescriptors(object1));

Pour poursuivre vos recherches, vous trouverez d’autres informations sur le site officiel !

Ce site est susceptible d'utiliser des cookies pour améliorer votre expérience utilisateur