JavaScriptで文章が「スムーズ」かどうかを判定する関数を実装する
スムーズな文章とは?
JavaScriptで、ある文章が「スムーズ(smooth)」であるかどうかを判定する関数を作成してみましょう。ここでいうスムーズな文章とは、文中の各単語の最初の文字が、直前の単語の最後の文字と一致している文章のことです。
例えば、「this stringt tries sto obe esmooth」という文章は、単語同士のつながりがこの条件を満たしているためスムーズと判定されます。一方、「this string is not smooth」は単語間で文字が一致していない箇所があるため、スムーズではありません。
コード例
以下が実際のコードです。
const str = 'this stringt tries sto obe esmooth';
const str2 = 'this string is not smooth';
const isSmooth = str => {
const strArr = str.split(' ');
for(let i = 0; i < strArr.length; i++){
if(!strArr[i+1] || strArr[i][strArr[i].length -1] === strArr[i+1][0]){
continue;
};
return false;
};
return true;
};
console.log(isSmooth(str));
console.log(isSmooth(str2))出力結果
コンソールには次のように出力されます。
true false
コードの解説
まず、split(' ')メソッドを使って、文章をスペースで区切った単語の配列に分割します。続いて、forループで各単語を順番に走査し、「現在の単語の最後の文字」と「次の単語の最初の文字」が一致しているかどうかを比較します。
文字が一致している場合、または次の単語が存在しない(文末に到達した)場合はcontinueで処理をスキップし、一致しない組み合わせが見つかった時点で即座にfalseを返します。すべての単語が条件を満たしていれば、ループを抜けた後にtrueを返します。
このように、シンプルなループ処理と文字列のインデックスアクセスを組み合わせるだけで、効率的に文章のスムーズさを判定できるのです。
-
JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説
JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>
-
JavaScriptのconstとletの違いを徹底解説!ブロックスコープ変数の基本と使い方
JavaScriptにおけるconstとletの基本const と let は、ES2015(ES6)で導入された変数宣言用のキーワードです。どちらもブロックスコープ(波括弧 { } で囲まれた範囲)に対応しているのが特徴で、関数スコープしか持たなかった従来の var とは異なる挙動を示します。両者の大きな違いは再代入の可否です。letで宣言した変数は後から何度でも値を再代入できますが、constで宣言した変数は再代入しようとするとエラー(TypeError)が発生します。letとconstの主な違い項目letconst再代入可能不可(エラー発生)スコープブロックスコープブロックスコープ宣言時