问题:
在echarts颜色生成中,用到随机数来产生0到4的数字,来指代颜色数组的其中一个,简单写了个随机数,然后界面生成时,会出现相邻区块的颜色相同。
解决:
添加一个标签flag,然后每次判断,如果为相同就循环调用。
//生成从minNum到maxNum的随机数
var flag = 0;
function randomNum(minNum,maxNum){
var result = 0;
switch(arguments.length){
case 1:
result = parseInt(Math.random()*minNum+1,10)
if(result != flag)
return result;
else return randomNum(minNum,maxNum);
break;
case 2:
result = parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
if(result != flag){
flag = result;
return result;
}
else return randomNum(minNum,maxNum);
break;
default:
return 0;
break;
}
};
备注:arguments.主要是可以对输入的参数进行跟踪,switch(arguments.length)表示输入的参数的个数,可以表示范围随机或者0到最大随机。