整数を自然言語の文に変換するクラスを作成しています。指定された数値が -9999 から 9999 の間であることを確認するために、いくつかの基本的なチェックが行われています。これはほとんどの場合うまくいくと思います。
ただし、プログラムが「this.convertSentence」に到達すると、try/catch ブロックとエラー チェックを通過すると、問題をさまざまな関数呼び出しに分解して、仕事が終わりました。
私が this.convertSentence でやろうとしていることは、数値のサイズなどをチェックしてから、数値を別の関数に送信してより多くの作業を行い、それらに文を伝播させて返すことです。クラス内だけで変数を使用する必要があるのか 、それとも文を構築するために変数を渡す必要があるのか どうかはわかりません。このようなことは私が疑問に思っています。
/**
* A class for converting an integer to a natrual language sentence in Spanish.
* Accepts integers from -9999 to 9999
*
*/
function NumberToWord () {
this.getSentence = function(number) {
// Check for erroneous input. Accepts only -9999 thru 9999 integers
try
{
if(number === parseInt(number) && number > -10000 && number < 10000) {
return this.convertSentence(number);
}
else {
throw new Error("Argument is not an integer between -9999 and 9999");
}
}
catch(e){
console.log(e.name + " " + e.message);
}
};
this.convertSentence = function(number) {
return "This is where I'll start the logic for the sentence";
};
}
var numberToWord = new NumberToWord();
// Tests
console.log(numberToWord.getSentence(9999));
console.log(numberToWord.getSentence(-9999));
console.log(numberToWord.getSentence(10000));
console.log(numberToWord.getSentence(-10000));
console.log(numberToWord.getSentence(0));
console.log(numberToWord.getSentence(1.1));
console.log(numberToWord.getSentence(-9999.1));
console.log(numberToWord.getSentence(10001));
console.log(numberToWord.getSentence(-10001));
console.log(numberToWord.getSentence(5.5));
console.log(numberToWord.getSentence());