JavaScriptで文字列の中和結果を計算する方法
文字列の中和とは
本記事では、「+」と「-」のみで構成された文字列を受け取り、全体の中和結果として「+」または「-」を返すJavaScript関数の実装方法を解説します。
中和の基本ルールは以下の通りです。
'++'→'+''--'→'+''+-'または'-+'→'-'
つまり、同じ記号同士の組み合わせは「+」となり、異なる記号が組み合わさると「-」になります。これは電荷の中和の考え方に似ています。
対象となる文字列
例として、次の文字列を使用します。
const str = '++-+-++---+-+--+-';
実装例
以下が実際のコードです。split('')で文字列を1文字ずつの配列に変換し、reduce()メソッドを使って左から順に各文字を蓄積値(acc)と比較していきます。
const str = '++-+-++---+-+--+-';
const netResult = (str = '') => {
const strArr = str.split('');
return strArr.reduce((acc, val) => {
if(acc === val){
return '+';
};
return '-';
});
};
console.log(netResult(str));
処理の流れ
reduce()では、暗黙的に最初の文字が初期値として使われ、以降は前回の結果(acc)と現在の文字(val)を比較します。
- 両者が一致する場合 →
'+'を返す - 一致しない場合 →
'-'を返す
この操作を文字列の末尾まで繰り返すことで、文字列全体の中和結果が1つの記号として求まります。
出力結果
コンソールには次のように出力されます。
-
このサンプル文字列の場合、最終的な中和結果は「-」となります。
-
JavaScriptのテンプレート文字列を使ってフォーマット済み文字列を作成する方法
JavaScriptでは、テンプレート文字列(テンプレートリテラル)を使用することで、変数や式を埋め込んだフォーマット済み文字列を簡単かつ直感的に作成できます。通常のシングルクォートやダブルクォートの代わりに、バッククォート(`)で文字列を囲み、${ } の中に変数名や式を記述するだけで、その評価結果が自動的に文字列へ挿入されます。従来の文字列連結(+ 演算子)と比べると、コードが読みやすくなり、複雑な文字列の組み立てもミスなく行えるのが大きなメリットです。以下は、テンプレート文字列を使ってオブジェクトの値を埋め込んだフォーマット済み文字列を作成するコード例です。サンプルコード<!DOC
-
JavaScriptでテンプレート文字列をネストする方法
JavaScriptのES6で導入されたテンプレート文字列(テンプレートリテラル)は、バッククォート(`)で囲むことで文字列の中に変数や式を埋め込める便利な機能です。実は、この${}(プレースホルダー)の中に、さらに別のテンプレート文字列を入れ子(ネスト)として記述することもできます。テンプレート文字列のネストとは${}の中には任意のJavaScript式を書けるため、その中で再度バッククォートを使ったテンプレート文字列を評価することが可能です。これにより、関数呼び出しの引数として動的に生成した文字列を渡すなど、柔軟な文字列組み立てが行えます。コード例以下は、ボタンをクリックすると、ネストされ