我正在尝试搜索总数。基于键在数组中出现值的时间。 我已经尝试过使用循环,它给出了正确的答案。 还有其他合适的方法吗?
如果我有连续重复的数组,则如下所示: type:'page_title':
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: {}
}
}];
现在,我该如何获得拒绝。 weddingData数组中存在的关键“页面标题”的计数
答案 0 :(得分:1)
使用减少:
var result = weddingData.reduce((amount, weddingDataItem) => {
if (weddingDataItem.type === 'page_title') {
return amount + 1;
}
return amount;
}, 0);
答案 1 :(得分:0)
也许您可以使用filter
( javascript 版本):
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)
答案 2 :(得分:0)
您可以简单地使用filter
方法。
weddingData.filter(p=>{return p.type === 'page_title'}).length;
答案 3 :(得分:-1)
您可以轻松地进入数组的forEach
循环,检查每个类型索引,如下所示:
weddingData.forEach( (element,key ) => {
if (element.type == "page_title" )
console.log(true)
// count and do stuff here
else
console.log(false)
})
希望这会有所帮助!