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

JavaScriptで2つの文字列の誤り(不一致)の数を数える方法

本記事では、2つの文字列を引数として受け取るJavaScript関数の作成方法を解説します。1つ目の文字列にはタイプミスが含まれており、2つ目の文字列はその正しい版とします。なお、引数として渡される2つの文字列は常に同じ長さであると仮定できるものとします。

この関数の目的は、1つ目の文字列に存在する誤り(正しい文字列と一致しない文字)の数を返すことです。

実装の考え方

両方の文字列の長さが同じであるため、インデックスを0から順に走査し、同じ位置にある文字同士を比較します。一致しない場合はカウンターを増やし、最後にそのカウンターの値を返すだけで実装できます。

コード例

以下が実際のコードです。

const str1 = 'Tkos am er exakgrg fetwnh';
const str2 = 'This is an example string';

const countMistakes = (mistaken, correct) => {
    let count = 0;
    for(let i = 0; i < mistaken.length; i++){
        if(mistaken[i] === correct[i]){
            continue;
        };
        count++;
    };
    return count;
};

console.log(countMistakes(str1, str2));

出力結果

コンソールに出力される結果は以下の通りです。

15

補足:filterメソッドを使った別の書き方

よりモダンな書き方として、filter()メソッドを利用することもできます。以下のように簡潔に記述できます。

const countMistakes = (mistaken, correct) =>
    [...mistaken].filter((ch, i) => ch !== correct[i]).length;

console.log(countMistakes(str1, str2)); // 15

このように、forループでも配列メソッドでも同じ結果が得られます。処理対象のデータ量が多い場合や可読性を重視する場合は、用途に応じて適切な方法を選択するとよいでしょう。

  1. JavaScriptの文字列入門|定義方法から比較演算子までわかりやすく解説

    JavaScriptにおける文字列(String)は、他の多くのプログラミング言語と同様に、テキスト形式でデータを保持するデータ型です。Webアプリケーションにおいて文字列がよく使われる場面のひとつが、フォームからのユーザー入力の保持です。たとえば検索フォームでは、ユーザーが入力した検索キーワードは文字列として保存されます。 ユーザーが検索フォームに入力して送信すると、送信された文字列に対して比較操作が行われます。これは、一致する情報を見つけ出し、その結果をユーザーに返すためです。比較操作には「=」「==」「===」「」といったJavaScriptの演算子が使われ、これらは文字列が持つ値を比

  2. JavaScriptで文字列を真偽値(Boolean)に変換する方法

    JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style>     body {         font-family: &