Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuyển mảng trùng lặp thành đối tượng đếm số lần xuất hiện trong JavaScript

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 }
]