J'ai une gamme d'éléments et je veux obtenir la fréquence des éléments dans un tableau, ce qui va bien. Comment convertir l'objet pour stocker ces éléments et fréquences dans un format pour avoir des noms de propriété ou des touches , j'ai une solution qui vient de retourner: p>
3 Réponses :
Vous pouvez le convertir en utilisant p> objet.entries code> comme ci-dessous. const obj = {
a: 3,
b: 2,
c: 1,
d: 4
};
const target = Object.entries(obj).map(v => ({
element: v[0],
frequency: v[1]
}));
console.log(target);
Vous pouvez utiliser Array #map code> sur objet.entries code> avec destructurant.
p>
const obj = { a : 3, b : 2, c : 1, d : 4 };
const res = Object.entries(obj).map(([element,frequency])=>({element,frequency}));
console.log(res);Utilisation d'une carte pour un accès rapide et facile lorsque vous calculez les fréquences, c'est une bonne idée, mais ce qui vous empêche de créer directement les objets souhaités directement?
E.g. au lieu de p> pourquoi pas? p> Vous devez alors simplement p> objet.values (obj) Pour obtenir ce que vous voulez. p>
const freq =
xs =>
Object.values
( xs.reduce
( (acc, x) =>
( acc[x] = acc[x] || {element: x, frequency: 0}
, acc[x].frequency += 1
, acc
)
, {}
)
);
console.log(freq(['a','a','a','b','b','c','d','d','d','d']));