[解決済み】配列要素の出現回数/頻度を数える
2022-03-30 05:38:39
質問
Javascriptで、数値の初期配列を受け取り、その中の要素を数えようとしています。理想的には、結果は2つの新しい配列になり、最初の配列は各ユニークな要素を指定し、2番目の配列は各要素の出現回数を含むことです。しかし、私は出力のフォーマットに関する提案を歓迎します。
例えば、最初の配列が
5, 5, 5, 2, 2, 2, 2, 2, 9, 4
そして、2つの新しい配列が作成されます。1つ目の配列には、それぞれのユニークな要素の名前が格納されます。
5, 2, 9, 4
2番目には、その要素が最初の配列で何回出現したかが入ります。
3, 5, 1, 1
最初の配列で5という数字が3回出てくるので、2という数字が5回、9と4がともに1回出てきます。
解決策をいろいろと探したのですが、どれもうまくいかず、自分で試したものはすべて、とんでもなく複雑なものになってしまいました。どんなことでもご相談ください。
ありがとうございます :)
解決方法は?
const arr = [2, 2, 5, 2, 2, 2, 4, 5, 5, 9];
function foo (array) {
let a = [],
b = [],
arr = [...array], // clone array so we don't change the original when using .sort()
prev;
arr.sort();
for (let element of arr) {
if (element !== prev) {
a.push(element);
b.push(1);
}
else ++b[b.length - 1];
prev = element;
}
return [a, b];
}
const result = foo(arr);
console.log('[' + result[0] + ']','[' + result[1] + ']')
console.log(arr)
関連
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] JavaScriptで配列を比較する方法は?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー