我有一个像这样的数组
{约翰,约翰,约翰,玛丽亚,彼得,彼得,玛丽亚,安娜,安娜,玛丽亚,玛丽亚,彼得}
我需要得到像
1 -> 3
2 -> 1
3 -> 2
4 -> 1
5 -> 2
6 -> 2
7 -> 1
我将名字分组,然后数数。
const array = ['John', 'John', 'John', 'Maria', 'Peter', 'Peter', 'Maria', 'Anna', 'Anna', 'Maria', 'Maria', 'Peter'];
let final = [];
const count = array.forEach(item => {
//check whether the last item in the array has the same name
if ( final[final.length - 1] && final[final.length-1][0] === item ) {
final[final.length -1].push(item)
} else {
//if different name then create a new grouping
final[final.length] = [item]
}
})
console.log(final.map(item => item.length)) //returns the size of each group
console.log('final array', final)