Cho mảng chuỗi có phần tử trùng lặp. Tạo mảng đối tượng, mỗi đối tượng chứa name (giá trị duy nhất) và count (số lần xuất hiện).
Ví dụ: ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California'] →
[
{name:'California', count:2},
{name:'Texas', count:3},
{name:'New York', count:1},
{name:'Missouri', count:1},
{name:'New Mexico', count:1}
]
Ví dụ
const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California'];
const findOccurrences = (arr = []) => {
const res = [];
arr.forEach(el => {
const index = res.findIndex(obj => obj['name'] === el);
if (index === -1) {
res.push({ "name": el, "count": 1 });
} else {
res[index]["count"]++;
}
});
return res;
};
console.log(findOccurrences(arr));
Kết quả
[
{ name: 'California', count: 2 },
{ name: 'Texas', count: 3 },
{ name: 'New York', count: 1 },
{ name: 'Missouri', count: 1 },
{ name: 'New Mexico', count: 1 }
]