0
votes

Obtenez la fréquence des éléments dans un tableau et rangez-les dans des paires de valeur clé

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 xxx

, j'ai une solution qui vient de retourner: xxx


0 commentaires

3 Réponses :


1
votes

Vous pouvez le convertir en utilisant objet.entries code> comme ci-dessous.

p>

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);


0 commentaires

1
votes

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);


0 commentaires

1
votes

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> xxx pré>

pourquoi pas? p> xxx pré>

Vous devez alors simplement objet.values ​​(obj) Pour obtenir ce que vous voulez. p>


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']));


0 commentaires