<script type="text/javascript">
var unique = {};
window.onload = function(){
document.getElementById('btn').onclick = function(){
var result = random_num([6,1]);
document.getElementById('result').innerHTML = document.getElementById('result').innerHTML + '<br />' + result
unique = {};
}
};
function random_num(){
var params = arguments[0];
var count = params[0] + params[1];
var result = arguments[1] || [];
var k = ("0"+Math.floor(Math.random() * (result.length >= params[0] ? 16 : 32) + 1)).slice(-2);
if(result.length<count){
if(!unique[k]){
result.push(k);
unique[k] = 1;
}
random_num(params,result);
}
return result;
}
</script>
<button id="btn">result</button>
<div id="result"></div>
var unique = {};
window.onload = function(){
document.getElementById('btn').onclick = function(){
var result = random_num([6,1]);
document.getElementById('result').innerHTML = document.getElementById('result').innerHTML + '<br />' + result
unique = {};
}
};
function random_num(){
var params = arguments[0];
var count = params[0] + params[1];
var result = arguments[1] || [];
var k = ("0"+Math.floor(Math.random() * (result.length >= params[0] ? 16 : 32) + 1)).slice(-2);
if(result.length<count){
if(!unique[k]){
result.push(k);
unique[k] = 1;
}
random_num(params,result);
}
return result;
}
</script>
<button id="btn">result</button>
<div id="result"></div>
random_num(params,[currentRandom]);
unique[currentRandom] = true;//缺少这里是错误的根源,但为什么重要的数不是第一个呢?
}else{
if(!unique[currentRandom]){
unique[currentRandom] = true;
result.push(currentRandom);
}
if(result.length < count){
random_num(params,result);
}else{
this.result = result.slice(0,count-1).sort().concat(result.slice(params[0]));
//原因在于这里:你把数组重排了,如果你写 this.result=result;就会发现只重要第一个数
}
}
unique[currentRandom] = true;//缺少这里是错误的根源,但为什么重要的数不是第一个呢?
不明白. this.result = result.slice(0,count-1).sort().concat(result.slice(params[0]));
//原因在于这里:你把数组重排了,如果你写 this.result=result;就会发现只重要第一个数我在你修改的代码之后,还是改成:
this.result = result.slice(0,count-1).sort().concat(result.slice(params[0]));
,没问题.感谢!