hAcKTion

日々のアウトプット場所。

JANコードのチェックデジットを求めるプログラムを作る

少し前にJANコードチェックデジットの仕様を調査していました。

hacktion.hateblo.jp

今日は、この仕様をプログラムに落とし込みました。

github.com

偶数桁の数字、奇数桁の数字のそれぞれについて、和を求めるために、まず文字列を1文字ずつ配列に入れます。 計算を行うために、数値に変換しています。

  const codeWithoutDigitArray = codeWithoutDigit.split("").map(Number);

それぞれの和を求める部分は以下のようにしました。

  codeWithoutDigitArray.forEach((number, index) => {
    if ((index + 1) % 2 === 1) {
      sumEvenDigitArray += number;
    } else {
      sumOddDigitArray += number;
    }
  });

forEach()以外で方法ないかなと思ったのですが、思い付かず、一番シンプルに書くとこうなのかなと思いました。

下一桁の計算は % 剰余演算子を使って求めます。

  // 下一桁を10から減算したものがチェックデジット
  return (10 - includeCheckDigitValue % 10).toString();

最後に文字列にしているのは、JANコードの12桁にくっつける文字列操作を行う必要があるためです。

明日はテストを書いていこうと思います。