JavaScriptで配列の反復結果を1行のテキスト文字列に変換する方法
JavaScriptでは、配列の各要素が特定の文字列に含まれているかどうかを判定し、その結果(true / false)を1行のテキスト文字列としてまとめたいケースがあります。
例として、次のような文字列と配列があるとします。
const textString = 'Convert javascript array iteration result into a single line text string. Happy searching!';
const keywords = ['integer', 'javascript', 'dry', 'Happy', 'exam'];
ここで求められているのは、配列の各要素が文字列内に存在するかどうかを判定し、その結果である true と false のみを含む1行のテキスト文字列へと変換する関数です。
実装コード
このような処理には reduce() メソッドが便利です。各要素に対して includes() を実行した結果を配列に蓄積し、最後に join() で連結して1行の文字列にします。
const textString = 'Convert javascript array iteration result into a single line text string. Happy searching!';
const keywords = ['integer', 'javascript', 'dry', 'Happy', 'exam'];
const includesString = (arr, str) => {
return arr.reduce((acc, val) => {
return acc.concat(str.includes(val));
}, []).join(', ');
};
console.log(includesString(keywords, textString));
出力結果
コンソールへの出力は次のようになります。
false, true, false, true, false
コードの解説
- reduce(): 配列の各要素を順番に処理し、初期値として渡された空の配列
[]に結果を蓄積していきます。 - str.includes(val): 文字列
textStringに現在のキーワードが含まれていればtrue、含まれていなければfalseを返します。 - join(', '): 蓄積されたブーリアン値をカンマ区切りの1行テキストに変換します。
なお、大文字・小文字を区別せずに判定したい場合は、比較前に toLowerCase() で両者を小文字に統一するとよいでしょう。また、カンマ以外の区切り文字を使いたい場合は join() の引数を変更するだけで対応できます。
-
JavaScriptで文字列を真偽値(Boolean)に変換する方法
JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style> body { font-family: &
-
C#でchar型配列を文字列(string)に変換する方法
C#では、stringクラスのコンストラクタを使うことで、char型の配列を簡単に文字列へ変換できます。ここでは、その基本的な手順とサンプルコードを紹介します。1. char型配列を用意するまず、変換元となる5文字分のchar型配列を作成し、各要素に文字を代入します。char[] ch = new char[15]; ch[0] = T; ch[1] = r; ch[2] = i; ch[3] = c; ch[4] = k;2. 配列を文字列に変換するchar型配列を引数として渡せるstringコンストラクタを使用すれば、配列全体を1つの文字列にまとめられます。string str = new