我试图在AngularJS中制作一个自定义过滤器,它将数字过滤为10等于X的罗马数字。但是这个过滤器无法读取大于10的数字,我想到了一种方法将一个大数字拆分成几个单个数字,例如11 = 10 + 1
app.filter("myFilter", function () {
return function (myNum) {
var formatedNumber = "";
switch (myNum) {
case 1:
formatedNumber = "I";
break;
case 2:
formatedNumber = "II";
break;
case 3:
formatedNumber = "III";
break;
case 4:
formatedNumber = "IV";
break;
case 5:
formatedNumber = "V";
break;
case 6:
formatedNumber = "VI";
break;
case 7:
formatedNumber = "VII";
break;
case 8:
formatedNumber = "VIII";
break;
case 9:
formatedNumber = "IX";
break;
case 10:
formatedNumber = "X";
break;
case myNum > 10:
formatedNumber = "";
break;
}
return formatedNumber;
};
});
答案 0 :(得分:0)
除以你最大的数字。商数将是您使用的最大数字的数量,其余数字将是其他数字。在您的示例中,11/10 = 1.1。所以你知道你需要1 X和1 I.另一个例子,让我们使用379. 379/10 = 37.9。这意味着你将拥有37个X和一个IX。