<li v-for="option in item.options">
<span class="m-text-nowrap">{{option.optionName}}</span>
<span>{{option.answercount}}</span>
<span>{{common.percentFormat(option.per)}}</span>
</li>
//算出百分比
for(var k=0;k<this.formData[i].options.length;k++){
this.formData[i].options[k].per = this.formData[i].options[k].answercount / this.sum;
console.log(this.formData[i].options[k].answercount + '和' + this.sum);
}
刚开始以为是我数据的问题,结果我打印出来都是0啊,怎样才不让它显示NaN?
首先,NaN是js里的一个特殊值,表示“非数字”(不过它typeof还是number);其次,
0/0
得到NaN是规定好了的:(出处)
最后,如果不想最终显示成NaN,那完全可以对结果判断一下,比较简单的方法是去Eustia里直接找到isNaN判断函数,点source直接去看源码,然后写到你程序最后加个判断就好了。
其实单就程序而言,这里本来也要加个判断逻辑,看下输出是否在预期范围内(其实输入也应该做下检查)。