JavaScriptで2つの文字列の共通要素を検索する方法
本記事では、共通要素を含む(または含まない)2つの文字列を引数として受け取り、共通要素が存在しない場合は空文字列を、存在する場合はすべての共通要素を含む文字列を返すJavaScript関数の作成方法を解説します。
例として、次の2つの文字列を使用します。
const str1 = 'Hey There!!, how are you'; const str2 = 'Can this be a special string';
コード例
以下が実際のコードです。
const str1 = 'Hey There!!, how are you';
const str2 = 'Can this be a special string';
const commonString = (str1, str2) => {
let res = '';
for(let i = 0; i < str1.length; i++){
if(!str2.includes(str1[i])){
continue;
};
res += str1[i];
};
return res;
};
console.log(commonString(str1, str2));コードの解説
この関数の仕組みは以下の通りです。
- まず、結果を格納するための空文字列 res を初期化します。
- forループを使って、1つ目の文字列 str1 の各文字を先頭から順に取り出します。
- includes() メソッドを使い、その文字が2つ目の文字列 str2 に含まれているかどうかを判定します。
- 含まれていない場合は continue でその文字をスキップし、含まれている場合は結果の文字列に追加します。
- ループが完了したら、共通要素を集めた文字列を返します。共通要素が1つも存在しない場合は、空文字列がそのまま返されます。
出力結果
コンソールには以下のように出力されます。
e here h are
このように、str1 の文字の中で str2 にも含まれている文字だけが順番に抽出され、1つの文字列として結合されます。
-
JavaScriptで2つの配列間の欠落した数値を見つける方法
問題の概要 2つの配列 arr1 と arr2 を引数として受け取るJavaScript関数を作成します。 arr2 は arr1 の要素をシャッフルした複製ですが、たった1つの要素だけが欠落しています。 この関数の目的は、その欠落している1つの要素を見つけ出して返すことです。 アプローチのポイント 最もシンプルかつ効率的なのは、ハッシュマップ(オブジェクト)を使って各数値の出現回数を記録する方法です。計算量は O(n) に抑えられ、配列内に重複した値が含まれていても正しく動作します。 コード例 以下が実際のコードです。 const arr1 = [6, 1, 3, 6, 8, 2];
-
JavaScriptで2つの文字列に共通しない文字を抽出して返す方法
問題2つの文字列を引数として受け取るJavaScript関数を作成することを考えます。この関数は、両方の文字列に共通して含まれていない文字、つまりどちらか一方の文字列にのみ存在する文字だけを抜き出し、それらをつなげた新しい文字列を返す必要があります。たとえば、xyab と xzca の2つの文字列が与えられた場合、共通する文字は x と a なので、結果として y、b、z、c を連結した ybzc を返すことになります。コード例以下がその実装コードです。const str1 = xyab; const str2 = xzca; const findUncommon = (str1 = , s