Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでの頻度による文字列文字の並べ替え


問題

文字列を唯一の引数として受け取るJavaScript関数を作成する必要があります。

関数は、元の文字列に基づいて新しい文字列を準備する必要があります。この文字列では、ほとんどの回数出現する文字が最初に配置され、次に頻度が減少する数字が配置されます。

たとえば、関数への入力が-

の場合
const str = 'free';

その場合、出力は-

になります。
const output = 'eefr';

出力の説明:

eは2回表示されるため、最初に配置され、次にrとfが配置されます。

このためのコードは-

になります
const str = 'free';
const frequencySort = (str = '') => {
   let map = {}
   for (const letter of str) {
      map[letter] = (map[letter] || 0) + 1;
   };
   let res = "";
   let sorted = Object.keys(map).sort((a, b) => map[b] - map[a])
   for (let letter of sorted) {
      for (let count = 0; count < map[letter]; count++) {
         res += letter
      }
   }
   return res;
};
console.log(frequencySort(str));

コードの説明:

私たちが取ったステップは-

  • まず、文字数のハッシュマップを作成しました

  • 次に、文字数で地図を並べ替えました

  • そして最後に、ソートされた文字からres文字列を生成しました

出力

そして、コンソールの出力は-

になります
eefr

  1. JavaScript正規表現の\wと\W?

    \ w vs \ W の間には多くのバリエーションがあります \ w および\ W javascript 前者は「単語文字」の世話をします 英数字など。後者は単語以外の文字の世話をします。 &、^、%など。簡単に説明しましょう。 構文-1 new RegExp("\\w", "g"); 上記のコードは、単語文字を見つけるための構文を示しています。 javascriptで。 構文-2 new RegExp("\\W", "g"); 上記のコードは、単語以外の文字を見つけるための構文を示しています。 j

  2. JavaScriptで文字をエスケープする

    エスケープ文字は、意図したものとは別の方法で解釈できる文字です。これらの文字をそのまま印刷するには、それらの前に円記号「\」を含めます。以下はJavaScriptのエスケープ文字です- コード 結果 \ b バックスペース \ f フォームフィード \ n 改行 \ r キャリッジリターン \ t 水平タブレーター \ v 垂直タブレーター \ 一重引用符 \ 二重引用符 \\ バックスラッシュ 以下は、javaScriptでエスケープ文字のバックスラッシュを実装するコードで