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

JavaScriptでカウントを念頭に置いて配列要素を比較する


同じ数の要素を含むリテラルの2つの配列があるとします。両方の配列に同じ回数出現する同じ要素が含まれているかどうかをチェックする関数を作成することになっています。

配列がこの条件を満たす場合はtrueを返し、そうでない場合はfalseを返します。

2番目の配列のコピーを作成し、最初の配列の反復を開始します。繰り返しながら、最初の配列に存在する2番目の配列から要素を削除し続けます。反復中に、2番目の配列に存在しない要素に遭遇した場合、falseを返します。それ以外の場合、反復の終了時にtrueを返します。

このためのコードは-

になります
const arr1 = [2, 5, 7, 4, 3, 3];
const arr2 = [3, 5, 7, 2, 3, 4];
const compareWithCount = (arr1, arr2) => {
   if(arr1.length !== arr2.length){
      return false;
   };
   const copy2 = arr2.slice();
   const areEqual = arr1.every(el => {
      if(!copy2.includes(el)){
         return false;
      };
      copy2.splice(copy2.indexOf(el), 1);
      return true;
   });
   return areEqual;
};
console.log(compareWithCount(arr1, arr2));

出力

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

になります
true

  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でメッシュ化できますか?

    問題 最初の単語の終了部分文字列が2番目の単語の開始部分文字列である場合、2つの単語を組み合わせることができます。たとえば、ロビンフッドとパーカーは互いにかみ合うことができます。 文字列の配列を受け取るJavaScript関数を作成する必要があります。指定された配列内のすべての単語が一緒にメッシュ化されている場合、関数はメッシュ化された文字を文字列で返す必要があります。そうでない場合は、空の文字列を返す必要があります。 例 以下はコードです- const arr = ["allow", "lowering", "ringmaster&qu