Permettez-moi de résumer les possibilités. Le but est toujours de faire un tableau à partir de l'objet. Il existe plusieurs fonctions Javascript pour les objets. Pour chaque fonction individuelle, il existe différentes façons de l'interpréter. Cela dépend donc toujours de l'aspect de notre objet et de ce que nous voulons faire.
Dans l'exemple ci-dessus, il s'agit d'un objet avec trois objets.
const obj = {
a: {value: 1},
b: {value: 2},
c: {value:3}
};
Avec Object.keys
Object.keys ne nous donne que les clés de l'objet.
const arr = Object.keys(obj);
// output arr:
[a, b, c]
const result = arr.reduce((total, key) => {
return sum + obj[key].value;
}, 0);
// output result
// 6
Avec Object.value
Object.value() renvoie toutes les valeurs d'un tableau.
const arr = Object.value(obj);
// output arr
[
{value: 1},
{value: 2},
{value: 3},
]
const result = arr.reduce((total, singleValue) => {
return total + singleValue.value;
}, 0);
// output result
// 6
// Or the short variant
const resultShort = Object.values(obj).reduce((t, n) => t + n.value, 0)
// output resultShort
// 6
Avec Object.entries
Object.entries divise chaque valeur individuelle de l'objet en un tableau.
const arr = Object.entries(obj)
// output arr
[
["a", {visitors: 1}],
["b", {visitors: 2}],
["c", {visitors: 4}]
]
const result = arr.reduce((total, singleArr) => {
return total + singleArr[1].value;
}, 0);
// output result
// 6
Que vous le fassiez avec reduce ou avec la fonction de tableau map() dépend de vous et de ce que vous voulez faire.