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

Đếm tần suất các phần tử duy nhất trong mảng JavaScript

Mô tả bài toán

Đếm số lần xuất hiện của từng giá trị duy nhất trong mảng, trả về object {value: count}.

Ví dụ minh họa

const arr = ["hi", "hello", "hi"];

const countUnique = arr => {
  const counts = {};
  for (let i = 0; i < arr.length; i++) {
    counts[arr[i]] = 1 + (counts[arr[i]] || 0);
  }
  return counts;
};

console.log(countUnique(arr));

Kết quả

{ hi: 2, hello: 1 }

Cách viết hiện đại

const countUnique = arr => 
  arr.reduce((acc, v) => (acc[v] = -~acc[v], acc), {});

Hoặc dùng Map (giữ kiểu key)

const countUnique = arr => {
  const map = new Map();
  for (const v of arr) map.set(v, (map.get(v) || 0) + 1);
  return Object.fromEntries(map);
};