JavaScript で Luhn アルゴリズムを実装する

JavaScriptJavaScriptBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript での Luhn アルゴリズムの実装を検討します。Luhn アルゴリズムは、クレジットカード番号、IMEI 番号、および National Provider Identifier 番号などの識別番号の検証に一般的に使用されます。この実験を通じて、文字列を分割し、配列を逆順にする方法、map()、reduce()、および shift() メソッドを使用して Luhn アルゴリズムを実装し、最終的に与えられた識別番号が有効かどうかを判断する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/str_manip("String Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} javascript/data_types -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} javascript/arith_ops -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} javascript/comp_ops -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} javascript/str_manip -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} javascript/higher_funcs -.-> lab-28477{{"JavaScript で Luhn アルゴリズムを実装する"}} end

Luhn チェック

クレジットカード番号、IMEI 番号、National Provider Identifier 番号などの識別番号の検証に Luhn アルゴリズムを使用するには、次の手順に従います。

  1. ターミナル/SSH を開き、コーディングの練習を始めるために node と入力します。
  2. 次のメソッドを組み合わせて使用して、数字の配列を取得します。String.prototype.split()Array.prototype.reverse()Array.prototype.map()、および parseInt()
  3. Array.prototype.shift() を使用して最後の桁を取得します。
  4. Array.prototype.reduce() を使用して Luhn アルゴリズムを実装します。
  5. sum10 で割り切れる場合は true を返し、それ以外の場合は false を返します。

以下がコードです。

const luhnCheck = (num) => {
  const arr = (num + "")
    .split("")
    .reverse()
    .map((x) => parseInt(x));
  const lastDigit = arr.shift();
  let sum = arr.reduce(
    (acc, val, i) =>
      i % 2 !== 0 ? acc + val : acc + ((val *= 2) > 9 ? val - 9 : val),
    0
  );
  sum += lastDigit;
  return sum % 10 === 0;
};

次の例を使用して Luhn チェック関数をテストできます。

luhnCheck("4485275742308327"); // true
luhnCheck(6011329933655299); //  true
luhnCheck(123456789); // false

まとめ

おめでとうございます!あなたは Luhn チェックの実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習することができます。