JANコードのチェックデジットを求めるプログラムを作る
少し前にJANコードのチェックデジットの仕様を調査していました。
今日は、この仕様をプログラムに落とし込みました。
偶数桁の数字、奇数桁の数字のそれぞれについて、和を求めるために、まず文字列を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桁にくっつける文字列操作を行う必要があるためです。
明日はテストを書いていこうと思います。