思路:将评分转换成数组,根据数组1,0.5,0来判断显示什么内容
let arr=[];
let m=Math.floor(this.score); //整数部分
let n=this.score-m; //小数部分
方式一:
for(let i=0;i<m;i++) //全星
{
arr.push(1);
}
if(n>=0.5) //最多出现一个半星
{
arr.push(0.5);
}
while(arr.length<5) //空星
{
arr.push(0);
}
console.log(arr);
return arr;
方式二:
if(n<0.5) // 小数部分<0.5的情况
{
for(let i=0;i<5;i++)
{
if(i<=(this.score-1))
{
arr.push(1);
}else {
arr.push(0);
}
}
}else{ //小数部分>=0.5的情况
for(let i=0;i<5;i++)
{
if(i<m)
{
arr.push(1);
}else if(i==m) {
arr.push(0.5);
}else{
arr.push(0);
}
}
}
console.log(arr);
return arr;
效果: