Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Object : méthode statique entries()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨mars 2017⁩.

La méthode statique Object.entries() retourne un tableau contenant les paires clé-valeur des propriétés propres énumérables d'un objet, dont les clés sont des chaînes de caractères.

Exemple interactif

const object = {
  a: "some string",
  b: 42,
};

for (const [key, value] of Object.entries(object)) {
  console.log(`${key}: ${value}`);
}

// Résultat attendu :
// "a: some string"
// "b: 42"

Syntaxe

js
Object.entries(obj)

Paramètres

obj

Un objet.

Valeur de retour

Un tableau contenant les paires clé-valeur des propriétés propres énumérables de l'objet donné, dont les clés sont des chaînes de caractères. Chaque paire clé-valeur est un tableau de deux éléments : le premier élément est la clé (toujours une chaîne de caractères), le second est la valeur de la propriété.

Description

Object.entries() retourne un tableau dont les éléments sont des tableaux correspondant aux paires clé-valeur des propriétés propres énumérables à clés de chaînes de caractères trouvées directement sur l'objet. Cela équivaut à itérer avec une boucle for...in, sauf qu'une boucle for...in énumère aussi les propriétés de la chaîne de prototypes. L'ordre du tableau retourné par Object.entries() est le même que celui fourni par une boucle for...in.

Si vous n'avez besoin que des clés, utilisez Object.keys(). Si vous n'avez besoin que des valeurs, utilisez Object.values().

Exemples

Utilisation de Object.entries()

js
const obj = { foo: "bar", baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

const arrayLike = { 0: "a", 1: "b", 2: "c" };
console.log(Object.entries(arrayLike)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

const randomKeyOrder = { 100: "a", 2: "b", 7: "c" };
console.log(Object.entries(randomKeyOrder)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

// getFoo est une propriété non énumérable
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]

Utiliser Object.entries() sur des valeurs primitives

Les arguments qui ne sont pas des objets sont convertis en objets. undefined et null ne peuvent pas être convertis en objets et lèvent immédiatement une TypeError. Seules les chaînes de caractères peuvent avoir des propriétés propres énumérables, tandis que toutes les autres primitives retournent un tableau vide.

js
// Strings have indices as enumerable own properties
console.log(Object.entries("foo")); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]

// Other primitives except undefined and null have no own properties
console.log(Object.entries(100)); // []

Convertir un objet en Map

Le constructeur Map() accepte un itérable de paires d'entrées. Avec Object.entries, vous pouvez facilement convertir un Object en Map :

js
const obj = { foo: "bar", baz: 42 };
const map = new Map(Object.entries(obj));
console.log(map); // Map(2) {"foo" => "bar", "baz" => 42}

Itérer sur un objet

En utilisant la décomposition de tableau, vous pouvez itérer facilement sur les objets.

js
// Avec une boucle for...of
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}

// Avec les méthodes de tableau
Object.entries(obj).forEach(([key, value]) => {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-object.entries

Compatibilité des navigateurs

Voir aussi