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

JavaScriptを並べ替えることなく、配列内の一意の要素をカウントします


たとえば、いくつかの重複する値を含むリテラルの配列があります-

const arr = ['Cat', 'Dog', 'Cat', 'Elephant', 'Dog', 'Grapes', 'Dog', 'Lion', 'Grapes', 'Lion'];

配列内の一意の要素の数を返す関数を作成する必要があります。これを行うには、Array.prototype.reduce()とArray.prototype.lastIndexOf()を使用します-

const arr = ['Cat', 'Dog', 'Cat', 'Elephant', 'Dog', 'Grapes', 'Dog',
'Lion', 'Grapes', 'Lion'];
const countUnique = arr => {
   return arr.reduce((acc, val, ind, array) => {
      if(array.lastIndexOf(val) === ind){
         return ++acc;
      };
      return acc;
   }, 0);
};
console.log(countUnique(arr));

出力

コンソールの出力は-

になります
5

  1. JavaScriptを使用した配列の要素のディープカウント

    問題 要素のネストされた配列を受け取り、配列に存在する要素の深い数を返すJavaScript関数を作成する必要があります。 入力 const arr = [1, 2, [3, 4, [5]]]; 出力 const output = 7; レベル1の要素は2であり、レベル2の要素は2であり、レベル3の要素は1であるため、ディープカウントは7です。 例 以下はコードです- const arr = [1, 2, [3, 4, [5]]]; const deepCount = (arr = []) => {    return arr    

  2. JavaScriptの要素の頻度の増加に基づいて配列を並べ替える

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 配列arrには、いくつかの重複が含まれている可能性があります。この関数は、出現回数が最も少ない要素が最初に配置され、次に頻度が高くなる要素が配置されるように配列を並べ替えることを想定しています。 2つの要素が配列に同じ回数出現する場合は、昇順で配置する必要があります。 たとえば、関数への入力が 入力 const arr = [5, 4, 5, 4, 2, 1, 12]; 出力 const output = [1, 2, 12, 4, 4, 5, 5]; 出力の説明