我有一个函数明星,将采取参数作为整数或小数假设如何打印在小数
function printStars(n)
其中n可以是1,1.25,1.5,1,75等高达5
我对星星有不同的等级。
<i class="icon icon-star-0 margin-right-5 size-icon-15"></i> (empty)
<i class="icon icon-star-25 margin-right-5 size-icon-15"></i> (25% filled)
<i class="icon icon-star-50 margin-right-5 size-icon-15"></i> (50% filled)
<i class="icon icon-star-75 margin-right-5 size-icon-15"></i> (75% filled)
<i class="icon icon-star-100 margin-right-5 size-icon-15"></i> (100% filled)
我想去的地方,如果我输入数字像printStars(3.75)
代码,我会给我的字符串
<i class="icon icon-star-100 margin-right-5 size-icon-15"></i>
<i class="icon icon-star-100 margin-right-5 size-icon-15"></i>
<i class="icon icon-star-100 margin-right-5 size-icon-15"></i>
<i class="icon icon-star-75 margin-right-5 size-icon-15"></i>
我所做的代码,但它不处理小数。任何人都可以引导我?这是我现在的代码。
function printStars(n){
var str=n.toString();
var splited=str.split('.');
var a=new Array();
var html = '';
a=splited;
if (a[1]==undefined){
a[1] = '0';
}
if (a[0]>0){
var filled = Number(a[0]) + Number(1);
} else {
var filled = Number(a[0]);
}
var left = Number(5) - Number(filled);
if (a[0]>0){
for (var i = 1; i <= filled-1; i++){
if (i==1){
html += '<i class="icon icon-star-100 margin-left-5"></i>';
} else {
html += '<i class="icon icon-star-100"></i>';
}
}
html += '<i class="icon icon-star-'+a[1]+'"></i>';
for (var i = 1; i <= left; i++){
html += '<i class="icon icon-star-0"></i>';
}
} else {
for (var i = 1; i <= filled; i++){
if (i==1){
html += '<i class="icon icon-star-100 margin-left-5"></i>';
} else {
html += '<i class="icon icon-star-100"></i>';
}
}
for (var i = 1; i <= left; i++){
html += '<i class="icon icon-star-0"></i>';
}
}
return html;
console.log('filled:'+filled);
console.log('left:'+left);
}
不过是数字低于1
向我们显示您的代码。 – Turnip
@Turnip显示 –
和'setItem()'? – Turnip