Trong Javascript, tôi đang cố lấy một mảng giá trị số ban đầu và đếm các phần tử bên trong nó. Lý tưởng nhất, kết quả sẽ là hai mảng mới, lần đầu tiên chỉ định từng phần tử duy nhất và phần thứ hai chứa số lần mỗi phần tử xảy ra. Tuy nhiên, tôi mở các đề xuất về định dạng của đầu ra.
Ví dụ: nếu mảng ban đầu là:
5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Sau đó, hai mảng mới sẽ được tạo ra. Cái đầu tiên sẽ chứa tên của từng thành phần duy nhất:
5, 2, 9, 4
Thứ hai sẽ chứa số lần phần tử đó xảy ra trong mảng ban đầu:
3, 5, 1, 1
Bởi vì số 5 xảy ra ba lần trong mảng ban đầu, số 2 xảy ra năm lần và 9 và 4 đều xuất hiện một lần.
Tôi đã tìm kiếm rất nhiều giải pháp, nhưng dường như không có gì hiệu quả, và tất cả mọi thứ tôi đã cố gắng tự làm mình trở nên phức tạp một cách lố bịch. Bất kỳ trợ giúp sẽ được đánh giá cao!
Cảm ơn :)
ramda.js
để đạt được điều này một cách dễ dàng. const ary = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4]; R.countBy(r=> r)(ary)
arr.filter(x => x===5).length
sẽ trở lại 3
để chỉ ra rằng có '3' fives trong mảng.
if (arr.indexOf(value) == arr.lastIndexOf(value))