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

JavaScriptのテキスト文字列で最も出現している上位3つの単語を検索する


問題

英語のアルファベット文字列を取り込むJavaScript関数を作成する必要があります。この関数は、文字列に存在する最も頻繁な上位3つの単語を返す必要があります。

以下はコードです-

const str = 'Python was developed by Guido van Rossum in the late eighties and early nineties at the National Research Institute for Mathematics and Computer Science in the Netherlands. Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68, SmallTalk, and Unix shell and other scripting languages. Python is copyrighted. Python source code is now available under the GNU General Public License (GPL)';
const findTopThree = (str = '') => {
   str = str
   .replace(/[^\w\s]|_/g, "")
   .replace(/\s+/g, " ")
   .toLowerCase();
   const arr = str.split(' ');
   const map = {};
   arr.forEach(word => {
      map[word] = (map[word] || 0) + 1;
   });
   const res = Array.from(Object.keys(map), key => [key, map[key]]);
   res.sort((a, b) => b[1] - a[1]);
   return [res[0][0], res[1][0], res[2][0]];
};
console.log(findTopThree(str));

出力

以下はコンソール出力です-

["python","the","and"]

  1. JavaScriptで文字列の最小削除を見つける

    このようなバイナリ文字列があるとします- const str = '001001'; 最初で唯一の引数など、1つの文字列を受け取るJavaScript関数を作成する必要があります。 次に、関数は、2つの隣接する数値が同じにならないように、入力に必要な最小削除数を計算して返す必要があります。 たとえば、上記の文字列の場合、出力は-になります。 const output = 2; インデックス0と3で「0」を削除すると、新しい文字列は「0101」になります。これは、必要な最長の文字列です。 例 このためのコードは-になります const str = '001001

  2. JavaScriptの文からn個の最も頻繁な単語を見つける

    この質問の目的のために、私たちは文を英語のアルファベットと句読点を含む文字列として定義し、単語は空白で結合されたその文の部分文字列です。 最初の引数として文の文字列strを取り、2番目の引数として数値numを受け取るJavaScript関数を作成する必要があります。この関数は、最初に文の各単語の頻度をカウントしてから、頻度の減少に従って配置された最も頻繁な単語の数を含む長さnumの配列を返す必要があります。 例- 入力文と数字が-の場合 const str = 'i am a good coder and i know that i can solve a problem'