假如需求是:我們需要獲取一組文章列表的分類標(biāo)簽浅萧,要求提取的分類標(biāo)簽不重復(fù)逐沙,并且統(tǒng)計(jì)每個(gè)分類的文章數(shù)
在標(biāo)簽分類列表中經(jīng)常用到這樣的數(shù)據(jù)格式:
let list=[
{
tagName:'雜談'
content:'文章1的內(nèi)容'
},
{
tagName:'資源分享'
content:'文章2的內(nèi)容'
},
{
tagName:'踩坑'
content:'文章3的內(nèi)容'
},
{
tagName:'資源分享'
content:'文章4的內(nèi)容'
},
{
tagName:'知識(shí)庫(kù)'
content:'文章5的內(nèi)容'
},
{
tagName:'踩坑'
content:'文章6的內(nèi)容'
},
]
let listObj={}//創(chuàng)建一個(gè)對(duì)象,用來創(chuàng)建索引
//提取文章分類標(biāo)簽洼畅,去重和統(tǒng)計(jì)文章出現(xiàn)次數(shù)
list.forEach((item,index)=>{
if (!listObj[item.tagName]) {//利用對(duì)象key索引吩案,判斷是否已有該標(biāo)簽分類字段
listObj[item.tagName] = {//沒有則創(chuàng)建key索引
'tagName': item.tagName,
'num': 1 //初始統(tǒng)計(jì)1
}
} else {//有則增加該重復(fù)次數(shù)統(tǒng)計(jì)
++listObj[item.tagName]['num']
}
});
// console.log('listObj',listObj)
// console.log('list',list)
//索引對(duì)象轉(zhuǎn)換成數(shù)組
let newList = []
for (var k in listObj) {
newList.push({
'col': listObj[k]['tagName'],
'num': listObj[k]['num']
})
}
// console.log('newList ',newList )