配列要素の出現回数/頻度を数える 質問する

配列要素の出現回数/頻度を数える 質問する

Javascript で、数値の初期配列を取得して、その中の要素をカウントしようとしています。理想的には、結果は 2 つの新しい配列になり、最初の配列は各一意の要素を指定し、2 番目の配列は各要素の出現回数を含みます。ただし、出力の形式に関する提案は歓迎します。

たとえば、初期配列が次の場合:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4

次に、2 つの新しい配列が作成されます。最初の配列には、各一意の要素の名前が含まれます。

5, 2, 9, 4

2 番目には、初期配列内でその要素が出現した回数が含まれます。

3, 5, 1, 1

初期配列では数字 5 が 3 回出現するため、数字 2 は 5 回出現し、9 と 4 はどちらも 1 回出現します。

解決策をいろいろ探しましたが、何もうまくいかないようで、自分で試したことはすべてとんでもなく複雑になってしまいました。どんな助けでもいただければ幸いです。

ありがとう :)

ベストアンサー1

結果を保持するためにオブジェクトを使用できます。

const arr = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4];
const counts = {};

for (const num of arr) {
  counts[num] = counts[num] ? counts[num] + 1 : 1;
}

console.log(counts);
console.log(counts[5], counts[2], counts[9], counts[4]);

これで、countsオブジェクトは特定の数値のカウントが何であるかを知らせることができます。

console.log(counts[5]); // logs '3'

メンバーの配列を取得したい場合は、keys()関数を使用します。

keys(counts); // returns ["5", "2", "9", "4"]

おすすめ記事