JAvascriptは重複しない乱数を生成する
3800 ワード
テーマの出所:慕授業でjQueryを勉強する過程でテスト問題があります.要素、要素に「その他」の文字が表示されます。
「その他」のリンクをクリックすると、自身の内容が「簡略化」され、要素にすべての要素が表示する.
「簡略化」リンクをクリックすると、自身の内容が「より多く」となり、エレメントには最後のエレメントを含む5つのエレメントのみが表示される. 要素をさらに含む5つの要素のみが表示される.
コアポイント:彼はどの 要素を隠す必要があるか言っていません.では、私は8つの 要素をリストしたいと思っています.ポイントはランダムに隠す前の7つの 要素のうち3つを簡略化します.
考え方:
①0~6から3つの乱数を生成する.
②3つの乱数が等しいか否かを判断し、等しくない場合は隠蔽操作を行う.
③3乱数が重複している場合は、関数を再実行します.
実装:0~6のランダム数を生成
完全なコード: 0 1 2 3 4 5 6 7
$(function cli(){
$("#btn").css("cursor","pointer");
if($("#btn").html()==" "){
var ran1=parseInt(Math.random()*7);
var ran2=parseInt(Math.random()*7);
var ran3=parseInt(Math.random()*7);//①0~6から3つの
if(ran 1!=ran 2&&&ran 1!=ran 2&&&ran 2!=ran 3){//②3つの が しいかどうかを し、 しくないと を します.
$('li:eq('+ran1+')').css('display','none');
$('li:eq('+ran2+')').css('display','none');
$('li:eq('+ran3+')').css('display','none');
$("#btn").html("もっと");
}else{//③3 が している は、 を します.
cli();
}
}
else{
$("li:hidden").css('display','list-item');
$(「a:contains('もっと").html(" ");
}
});
:
要素には、最後の コアポイント:彼はどの
考え方:
①0~6から3つの乱数を生成する.
②3つの乱数が等しいか否かを判断し、等しくない場合は隠蔽操作を行う.
③3乱数が重複している場合は、関数を再実行します.
実装:0~6のランダム数を生成
var ran1=parseInt(Math.random()*7); //Math.random() [0,1)
完全なコード:
$(function cli(){
$("#btn").css("cursor","pointer");
if($("#btn").html()==" "){
var ran1=parseInt(Math.random()*7);
var ran2=parseInt(Math.random()*7);
var ran3=parseInt(Math.random()*7);//①0~6から3つの
if(ran 1!=ran 2&&&ran 1!=ran 2&&&ran 2!=ran 3){//②3つの が しいかどうかを し、 しくないと を します.
$('li:eq('+ran1+')').css('display','none');
$('li:eq('+ran2+')').css('display','none');
$('li:eq('+ran3+')').css('display','none');
$("#btn").html("もっと");
}else{//③3 が している は、 を します.
cli();
}
}
else{
$("li:hidden").css('display','list-item');
$(「a:contains('もっと").html(" ");
}
});
:
var ran=parseInt(Math.random()*(max-min+1)+min); // [min,max]
:
, [min,max] , n 。
: n [min,max] , , , 。
:http://jsbin.com/yupuyehuqa/edit?html,js,output
:
function my_ran(n,min,max){
var arr=[];
for(i=0;i
: i [min,max] , i-1 , , i=i-1; i 。
:http://jsbin.com/zorunotosi/edit?html,js,output
:
function my_ran2(n,min,max){
var arr=[];
for(i=0;i
: [min,max] , , n 。
:http://jsbin.com/zorunotosi/edit?html,js,output
:
function my_ran3(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i
: [min,max] , , , 。
:http://jsbin.com/zorunotosi/edit?html,js,output
:
function my_ran4(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i
, 。
, 。