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

JavaScriptを使用して配列内で最も頻繁に使用される単語を検索する


問題

最初の引数として英語の小文字のアルファベットの文字列の配列arrを受け取るJavaScript関数を作成する必要があります。関数の2番目の引数は、数値num(num

この関数は、配列arrで最も頻繁に使用される要素の数を返すことになっています。

回答は、頻度の高いものから低いものへと並べ替える必要があります。 2つの単語の頻度が同じである場合は、アルファベットの低い方の単語が最初に来ます。

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

入力

const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"];
const num = 4;

出力

const output = ["the", "is", "sunny", "day"];

出力の説明

「the」、「is」、「sunny」、「day」は、最も頻繁に使用される4つの単語です。

発生数はそれぞれ4、3、2、1です。

以下はコードです-

const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"];
const num = 4;
const mostFrequent = (arr = [], num = 1) => {
   const map = {};
   let keys = [];
   for (let i = 0; i < arr.length; i++) {
      if (map[arr[i]]) {
         map[arr[i]]++;
      } else {
         map[arr[i]] = 1;
      }
   }
   for (let i in map) {
      keys.push(i);
   }
   keys = keys.sort((a, b) => {

      if (map[a] === map[b]) {

         if (a > b) {
            return 1;
         } else {
            return -1;
         }
      }
      else {
         return map[b] - map[a];
      }
   })
   .slice(0, num);
   return keys;
};
console.log(mostFrequent(arr, num));

出力

[ 'the', 'is', 'sunny', 'day' ]

  1. 文字列の2次元配列を並べ替え、JavaScriptを使用して対角要素を見つける

    問題 n個の文字列の配列を受け取るJavaScript関数を作成する必要があります。また、配列内の各文字列は正確にn文字で構成されています。 この関数は、最初に配列をアルファベット順にソートする必要があります。次に、左上隅から始まる主対角線に存在する文字によって形成された文字列を返します。 例 以下はコードです- const arr = [    'star',    'abcd',    'calm',    'need' ]; const s

  2. JavaScriptを使用して配列内のフィボナッチ数列を検索する

    フィボナッチ数列: シーケンスX_1、X_2、...、X_nは、次の場合にフィボナッチです。 =3 X_i + X_ {i + 1} =X_ {i+2}すべてのi+2 <=n 問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。この関数は、配列arrに存在する最長のフィボナッチサブシーケンスの長さを見つけて返す必要があります。 サブシーケンスは、残りの要素の順序を変更せずに、arrから任意の数の要素(なしを含む)を削除することにより、別のシーケンスarrから派生します。 たとえば、関数への入力が 入力 con