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

JavaScript、ES6の順序付けについて大文字と小文字を区別せず、独立した2つの文字列配列を比較する方法


関数を作成する必要があります。たとえば、isEqual()は、引数として2つの文字列を受け取り、順序や大文字と小文字に関係なく、両方に同じ文字が含まれているかどうかを確認します。

例-

const first = 'Aavsg';
const second = 'VSAAg';
isEqual(first, second); //true

方法:1配列を使用する

このメソッドでは、文字列を配列に変換し、Array.prototype.sort()メソッドを使用して、文字列に変換し直し、等しいかどうかを確認します。

このためのコードは-

になります

const first = 'Aavsg';
const second = 'VSAAg';
const stringSort = function(){
   return this.split("").sort().join("");
}
String.prototype.sort = stringSort;
const isEqual = (first, second) => first.toLowerCase().sort() ===
second.toLowerCase().sort();
console.log(isEqual(first, second));

方法2:マップを使用する

この方法では、両方の文字列を同時に繰り返し、文字の頻度を次のような値でマップに格納します-

-1, if it appears in the first string,
+1, if it appears in the second string,

最後に、すべてのキーの合計が0の場合、文字列は同じであると結論付けます。それ以外の場合は同じではありません。

このためのコードは-

になります

const first = 'Aavsg';
const second = 'VSAAg';
const isEqual = (first, second) => {
   if(first.length !== second.length){
      return false;
   }
   first = first.toLowerCase();
   second = second.toLowerCase();
   const map = {};
   for(ind in first){
      if(map[first[ind]]){
         map[first[ind]]++;
      }else{
         map[first[ind]] = 1;
      }
      if(map[second[ind]]){
         map[second[ind]]--;
      }else{
         map[second[ind]] = -1;
      }
   };
   return Object.values(map).reduce((acc, val) => val === 0 && acc, true);
};
console.log(isEqual(first, second));

出力

両方のコンソールの出力は-

になります
true

  1. JavaScriptで2つの配列を結合する方法は?

    以下は、JavaScriptで2つの配列を結合するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>   &

  2. JavaScriptで2つの配列を乗算する方法は?

    以下は、JavaScriptで2つの配列を乗算するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>   &