0
votes

Recherche dans une matrice contenant plusieurs objets sur la base de la valeur de la clé

J'essaie de chercher le total non. d'occurrence d'une valeur dans un tableau sur la base de la clé. Je l'ai déjà essayé en utilisant une boucle, ce qui a donné la bonne réponse. Y a-t-il une autre manière appropriée?

Si j'ai une matrice que les conatines répétées type: 'Page_title' Strong> indiquée ci-dessous: p>

  weddingData: Array<WeddingDataModel> = [
{
  type: 'page_title',
  data: {
    title: 'Hello First element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello Second Element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello Third Element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello',
  }
},
{
  type: 'background_color',
  data: {
    backgroundColor: '#ff785'
  }
},
{
  type: 'banner_images',
  data: {
    image1 : {},
    image2: {},
    image3: {}
  }
}];


0 commentaires

4 Réponses :


0
votes

Peut être que vous pouvez utiliser filtre code> ( javascript em> version):

p>

var weddingData = [
{
  type: 'page_title',
  data: {
    title: 'Hello First element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello Second Element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello Third Element',
  }
},
 {
  type: 'page_title',
  data: {
    title: 'Hello',
  }
},
{
  type: 'background_color',
  data: {
    backgroundColor: '#ff785'
  }
},
{
  type: 'banner_images',
  data: {
    image1 : {},
    image2: {},
    image3: {}
  }
}];

console.log(weddingData.filter(x => x.type === 'page_title').length)


0 commentaires

-1
votes

Vous pouvez facilement accéder à une boucle foreach sur le tableau, vérifiant chaque index de type, comme indiqué: xxx

espère que cela aide! < / p>


0 commentaires

1
votes

Utiliser Réduire:

var result = weddingData.reduce((amount, weddingDataItem) => {
    if (weddingDataItem.type === 'page_title') {
        return amount + 1;
    }
    return amount;
}, 0);


0 commentaires

0
votes

Vous pouvez utiliser la méthode filtre code> pour cela simplement.

weddingData.filter(p=>{return p.type === 'page_title'}).length;


0 commentaires