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 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: {}
}
}];
4 Réponses :
Peut être que vous pouvez utiliser p> filtre code> ( javascript em> version):
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)
Vous pouvez facilement accéder à une boucle code> foreach code> sur le tableau, vérifiant chaque index de type, comme indiqué: espère que cela aide! P> < / p>
Utiliser Réduire:
var result = weddingData.reduce((amount, weddingDataItem) => { if (weddingDataItem.type === 'page_title') { return amount + 1; } return amount; }, 0);
Vous pouvez utiliser la méthode filtre code> pour cela simplement.
weddingData.filter(p=>{return p.type === 'page_title'}).length;